Socket
Socket
Sign inDemoInstall

redux-persist

Package Overview
Dependencies
1
Maintainers
2
Versions
186
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 5.11.0-alpha to 6.0.0-pre1

CHANGELOG.md

1249

dist/redux-persist.js

@@ -7,45 +7,80 @@ (function (global, factory) {

var KEY_PREFIX = 'persist:';
var FLUSH = 'persist/FLUSH';
var REHYDRATE = 'persist/REHYDRATE';
var PAUSE = 'persist/PAUSE';
var PERSIST = 'persist/PERSIST';
var PURGE = 'persist/PURGE';
var REGISTER = 'persist/REGISTER';
var DEFAULT_VERSION = -1;
function _typeof(obj) {
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
_typeof = function (obj) {
return typeof obj;
};
} else {
_typeof = function (obj) {
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
};
}
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;
};
return _typeof(obj);
}
function _defineProperty(obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
}
function _objectSpread(target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i] != null ? arguments[i] : {};
var ownKeys = Object.keys(source);
if (typeof Object.getOwnPropertySymbols === 'function') {
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
}));
}
ownKeys.forEach(function (key) {
_defineProperty(target, key, source[key]);
});
}
return target;
}
function _objectWithoutPropertiesLoose(source, excluded) {
if (source == null) return {};
var target = {};
var sourceKeys = Object.keys(source);
var key, i;
for (i = 0; i < sourceKeys.length; i++) {
key = sourceKeys[i];
if (excluded.indexOf(key) >= 0) continue;
target[key] = source[key];
}
return target;
}
function _objectWithoutProperties(source, excluded) {
if (source == null) return {};
var target = _objectWithoutPropertiesLoose(source, excluded);
var key, i;
if (Object.getOwnPropertySymbols) {
var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
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];
}
for (i = 0; i < sourceSymbolKeys.length; i++) {
key = sourceSymbolKeys[i];
if (excluded.indexOf(key) >= 0) continue;
if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
target[key] = source[key];
}

@@ -55,73 +90,457 @@ }

return target;
};
}
function _toConsumableArray(arr) {
return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();
}
function _arrayWithoutHoles(arr) {
if (Array.isArray(arr)) {
for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];
return arr2;
}
}
function _iterableToArray(iter) {
if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter);
}
function _nonIterableSpread() {
throw new TypeError("Invalid attempt to spread non-iterable instance");
}
var LIBRARY = require('./_library');
var global$1 = require('./_global');
var ctx = require('./_ctx');
var classof = require('./_classof');
var $export = require('./_export');
var isObject = require('./_is-object');
var aFunction = require('./_a-function');
var anInstance = require('./_an-instance');
var forOf = require('./_for-of');
var speciesConstructor = require('./_species-constructor');
var task = require('./_task').set;
var microtask = require('./_microtask')();
var newPromiseCapabilityModule = require('./_new-promise-capability');
var perform = require('./_perform');
var userAgent = require('./_user-agent');
var promiseResolve = require('./_promise-resolve');
var PROMISE = 'Promise';
var TypeError$1 = global$1.TypeError;
var process = global$1.process;
var versions = process && process.versions;
var v8 = versions && versions.v8 || '';
var $Promise = global$1[PROMISE];
var isNode = classof(process) == 'process';
var empty = function () { /* empty */ };
var Internal;
var newGenericPromiseCapability;
var OwnPromiseCapability;
var Wrapper;
var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;
var USE_NATIVE = !!function () {
try {
// correct subclassing with @@species support
var promise = $Promise.resolve(1);
var FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function (exec) {
exec(empty, empty);
};
// unhandled rejections tracking support, NodeJS Promise without it fails @@species test
return (isNode || typeof PromiseRejectionEvent == 'function')
&& promise.then(empty) instanceof FakePromise
// v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables
// https://bugs.chromium.org/p/chromium/issues/detail?id=830565
// we can't detect it synchronously, so just check versions
&& v8.indexOf('6.6') !== 0
&& userAgent.indexOf('Chrome/66') === -1;
} catch (e) { /* empty */ }
}();
var objectWithoutProperties = function (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];
// helpers
var isThenable = function (it) {
var then;
return isObject(it) && typeof (then = it.then) == 'function' ? then : false;
};
var notify = function (promise, isReject) {
if (promise._n) return;
promise._n = true;
var chain = promise._c;
microtask(function () {
var value = promise._v;
var ok = promise._s == 1;
var i = 0;
var run = function (reaction) {
var handler = ok ? reaction.ok : reaction.fail;
var resolve = reaction.resolve;
var reject = reaction.reject;
var domain = reaction.domain;
var result, then, exited;
try {
if (handler) {
if (!ok) {
if (promise._h == 2) onHandleUnhandled(promise);
promise._h = 1;
}
if (handler === true) result = value;
else {
if (domain) domain.enter();
result = handler(value); // may throw
if (domain) {
domain.exit();
exited = true;
}
}
if (result === reaction.promise) {
reject(TypeError$1('Promise-chain cycle'));
} else if (then = isThenable(result)) {
then.call(result, resolve, reject);
} else resolve(result);
} else reject(value);
} catch (e) {
if (domain && !exited) domain.exit();
reject(e);
}
};
while (chain.length > i) run(chain[i++]); // variable length - can't use forEach
promise._c = [];
promise._n = false;
if (isReject && !promise._h) onUnhandled(promise);
});
};
var onUnhandled = function (promise) {
task.call(global$1, function () {
var value = promise._v;
var unhandled = isUnhandled(promise);
var result, handler, console;
if (unhandled) {
result = perform(function () {
if (isNode) {
process.emit('unhandledRejection', value, promise);
} else if (handler = global$1.onunhandledrejection) {
handler({ promise: promise, reason: value });
} else if ((console = global$1.console) && console.error) {
console.error('Unhandled promise rejection', value);
}
});
// Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should
promise._h = isNode || isUnhandled(promise) ? 2 : 1;
} promise._a = undefined;
if (unhandled && result.e) throw result.v;
});
};
var isUnhandled = function (promise) {
return promise._h !== 1 && (promise._a || promise._c).length === 0;
};
var onHandleUnhandled = function (promise) {
task.call(global$1, function () {
var handler;
if (isNode) {
process.emit('rejectionHandled', promise);
} else if (handler = global$1.onrejectionhandled) {
handler({ promise: promise, reason: promise._v });
}
});
};
var $reject = function (value) {
var promise = this;
if (promise._d) return;
promise._d = true;
promise = promise._w || promise; // unwrap
promise._v = value;
promise._s = 2;
if (!promise._a) promise._a = promise._c.slice();
notify(promise, true);
};
var $resolve = function (value) {
var promise = this;
var then;
if (promise._d) return;
promise._d = true;
promise = promise._w || promise; // unwrap
try {
if (promise === value) throw TypeError$1("Promise can't be resolved itself");
if (then = isThenable(value)) {
microtask(function () {
var wrapper = { _w: promise, _d: false }; // wrap
try {
then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));
} catch (e) {
$reject.call(wrapper, e);
}
});
} else {
promise._v = value;
promise._s = 1;
notify(promise, false);
}
} catch (e) {
$reject.call({ _w: promise, _d: false }, e); // wrap
}
return target;
};
// constructor polyfill
if (!USE_NATIVE) {
// 25.4.3.1 Promise(executor)
$Promise = function Promise(executor) {
anInstance(this, $Promise, PROMISE, '_h');
aFunction(executor);
Internal.call(this);
try {
executor(ctx($resolve, this, 1), ctx($reject, this, 1));
} catch (err) {
$reject.call(this, err);
}
};
// eslint-disable-next-line no-unused-vars
Internal = function Promise(executor) {
this._c = []; // <- awaiting reactions
this._a = undefined; // <- checked in isUnhandled reactions
this._s = 0; // <- state
this._d = false; // <- done
this._v = undefined; // <- value
this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled
this._n = false; // <- notify
};
Internal.prototype = require('./_redefine-all')($Promise.prototype, {
// 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)
then: function then(onFulfilled, onRejected) {
var reaction = newPromiseCapability(speciesConstructor(this, $Promise));
reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
reaction.fail = typeof onRejected == 'function' && onRejected;
reaction.domain = isNode ? process.domain : undefined;
this._c.push(reaction);
if (this._a) this._a.push(reaction);
if (this._s) notify(this, false);
return reaction.promise;
},
// 25.4.5.1 Promise.prototype.catch(onRejected)
'catch': function (onRejected) {
return this.then(undefined, onRejected);
}
});
OwnPromiseCapability = function () {
var promise = new Internal();
this.promise = promise;
this.resolve = ctx($resolve, promise, 1);
this.reject = ctx($reject, promise, 1);
};
newPromiseCapabilityModule.f = newPromiseCapability = function (C) {
return C === $Promise || C === Wrapper
? new OwnPromiseCapability(C)
: newGenericPromiseCapability(C);
};
}
$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });
require('./_set-to-string-tag')($Promise, PROMISE);
require('./_set-species')(PROMISE);
Wrapper = require('./_core')[PROMISE];
// statics
$export($export.S + $export.F * !USE_NATIVE, PROMISE, {
// 25.4.4.5 Promise.reject(r)
reject: function reject(r) {
var capability = newPromiseCapability(this);
var $$reject = capability.reject;
$$reject(r);
return capability.promise;
}
});
$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {
// 25.4.4.6 Promise.resolve(x)
resolve: function resolve(x) {
return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);
}
});
$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function (iter) {
$Promise.all(iter)['catch'](empty);
})), PROMISE, {
// 25.4.4.1 Promise.all(iterable)
all: function all(iterable) {
var C = this;
var capability = newPromiseCapability(C);
var resolve = capability.resolve;
var reject = capability.reject;
var result = perform(function () {
var values = [];
var index = 0;
var remaining = 1;
forOf(iterable, false, function (promise) {
var $index = index++;
var alreadyCalled = false;
values.push(undefined);
remaining++;
C.resolve(promise).then(function (value) {
if (alreadyCalled) return;
alreadyCalled = true;
values[$index] = value;
--remaining || resolve(values);
}, reject);
});
--remaining || resolve(values);
});
if (result.e) reject(result.v);
return capability.promise;
},
// 25.4.4.4 Promise.race(iterable)
race: function race(iterable) {
var C = this;
var capability = newPromiseCapability(C);
var reject = capability.reject;
var result = perform(function () {
forOf(iterable, false, function (promise) {
C.resolve(promise).then(capability.resolve, reject);
});
});
if (result.e) reject(result.v);
return capability.promise;
}
});
// 19.1.3.6 Object.prototype.toString()
var classof$1 = require('./_classof');
var test = {};
test[require('./_wks')('toStringTag')] = 'z';
if (test + '' != '[object z]') {
require('./_redefine')(Object.prototype, 'toString', function toString() {
return '[object ' + classof$1(this) + ']';
}, true);
}
var KEY_PREFIX = 'persist:';
var FLUSH = 'persist/FLUSH';
var REHYDRATE = 'persist/REHYDRATE';
var PAUSE = 'persist/PAUSE';
var PERSIST = 'persist/PERSIST';
var PURGE = 'persist/PURGE';
var REGISTER = 'persist/REGISTER';
var DEFAULT_VERSION = -1;
var $iterators = require('./es6.array.iterator');
var getKeys = require('./_object-keys');
var redefine = require('./_redefine');
var global$2 = require('./_global');
var hide = require('./_hide');
var Iterators = require('./_iterators');
var wks = require('./_wks');
var ITERATOR = wks('iterator');
var TO_STRING_TAG = wks('toStringTag');
var ArrayValues = Iterators.Array;
var DOMIterables = {
CSSRuleList: true, // TODO: Not spec compliant, should be false.
CSSStyleDeclaration: false,
CSSValueList: false,
ClientRectList: false,
DOMRectList: false,
DOMStringList: false,
DOMTokenList: true,
DataTransferItemList: false,
FileList: false,
HTMLAllCollection: false,
HTMLCollection: false,
HTMLFormElement: false,
HTMLSelectElement: false,
MediaList: true, // TODO: Not spec compliant, should be false.
MimeTypeArray: false,
NamedNodeMap: false,
NodeList: true,
PaintRequestList: false,
Plugin: false,
PluginArray: false,
SVGLengthList: false,
SVGNumberList: false,
SVGPathSegList: false,
SVGPointList: false,
SVGStringList: false,
SVGTransformList: false,
SourceBufferList: false,
StyleSheetList: true, // TODO: Not spec compliant, should be false.
TextTrackCueList: false,
TextTrackList: false,
TouchList: false
};
for (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {
var NAME = collections[i];
var explicit = DOMIterables[NAME];
var Collection = global$2[NAME];
var proto = Collection && Collection.prototype;
var key;
if (proto) {
if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);
if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);
Iterators[NAME] = ArrayValues;
if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);
}
}
var addToUnscopables = require('./_add-to-unscopables');
var step = require('./_iter-step');
var Iterators$1 = require('./_iterators');
var toIObject = require('./_to-iobject');
// 22.1.3.4 Array.prototype.entries()
// 22.1.3.13 Array.prototype.keys()
// 22.1.3.29 Array.prototype.values()
// 22.1.3.30 Array.prototype[@@iterator]()
module.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {
this._t = toIObject(iterated); // target
this._i = 0; // next index
this._k = kind; // kind
// 22.1.5.2.1 %ArrayIteratorPrototype%.next()
}, function () {
var O = this._t;
var kind = this._k;
var index = this._i++;
if (!O || index >= O.length) {
this._t = undefined;
return step(1);
}
if (kind == 'keys') return step(0, index);
if (kind == 'values') return step(0, O[index]);
return step(0, [index, O[index]]);
}, 'values');
// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
Iterators$1.Arguments = Iterators$1.Array;
addToUnscopables('keys');
addToUnscopables('values');
addToUnscopables('entries');
// 19.1.2.14 Object.keys(O)
var toObject = require('./_to-object');
var $keys = require('./_object-keys');
require('./_object-sap')('keys', function () {
return function keys(it) {
return $keys(toObject(it));
};
});
/*
autoMergeLevel1:
- merges 1 level of substate
- skips substate if already modified
*/
function autoMergeLevel1(inboundState, originalState, reducedState, _ref) {
var debug = _ref.debug;
var newState = _objectSpread({}, reducedState); // only rehydrate if inboundState exists and is an object
var toConsumableArray = function (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);
}
};
function autoMergeLevel1(inboundState, originalState, reducedState, _ref) {
var debug = _ref.debug;
var newState = _extends({}, reducedState);
// only rehydrate if inboundState exists and is an object
if (inboundState && (typeof inboundState === 'undefined' ? 'undefined' : _typeof(inboundState)) === 'object') {
if (inboundState && _typeof(inboundState) === 'object') {
Object.keys(inboundState).forEach(function (key) {
// ignore _persist data
if (key === '_persist') return;
// if reducer modifies substate, skip auto rehydration
if (key === '_persist') return; // if reducer modifies substate, skip auto rehydration
if (originalState[key] !== reducedState[key]) {
if ("development" !== 'production' && debug) console.log('redux-persist/stateReconciler: sub state for key `%s` modified, skipping.', key);
return;
}
// otherwise hard set the new value
} // otherwise hard set the new value
newState[key] = inboundState[key];

@@ -131,15 +550,7 @@ });

if ("development" !== 'production' && debug && inboundState && (typeof inboundState === 'undefined' ? 'undefined' : _typeof(inboundState)) === 'object') console.log('redux-persist/stateReconciler: rehydrated keys \'' + Object.keys(inboundState).join(', ') + '\'');
if ("development" !== 'production' && debug && inboundState && _typeof(inboundState) === 'object') console.log("redux-persist/stateReconciler: rehydrated keys '".concat(Object.keys(inboundState).join(', '), "'"));
return newState;
}
/*
autoMergeLevel1:
- merges 1 level of substate
- skips substate if already modified
*/
// @TODO remove once flow < 0.63 support is no longer required.
function createPersistoid(config) {

@@ -151,9 +562,18 @@ // defaults

var throttle = config.throttle || 0;
var storageKey = '' + (config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX) + config.key;
var storageKey = "".concat(config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX).concat(config.key);
var storage = config.storage;
var serialize = config.serialize === false ? function (x) {
return x;
} : defaultSerialize;
var serialize;
// initialize stateful values
if (!config.serialize) {
serialize = defaultSerialize;
} else if (typeof config.serialize === 'function') {
serialize = config.serialize;
} else {
serialize = function serialize(x) {
return x;
};
}
var writeFailHandler = config.writeFailHandler || null; // initialize stateful values
var lastState = {};

@@ -169,16 +589,17 @@ var stagedState = {};

if (!passWhitelistBlacklist(key)) return; // is keyspace ignored? noop
if (lastState[key] === state[key]) return; // value unchanged? noop
if (keysToProcess.indexOf(key) !== -1) return; // is key already queued? noop
keysToProcess.push(key); // add key to queue
});
}); //if any key is missing in the new state which was present in the lastState,
//add it for processing too
//if any key is missing in the new state which was present in the lastState,
//add it for processing too
Object.keys(lastState).forEach(function (key) {
if (state[key] === undefined) {
if (state[key] === undefined && passWhitelistBlacklist(key) && keysToProcess.indexOf(key) === -1 && lastState[key] !== undefined) {
keysToProcess.push(key);
}
});
}); // start the time iterator if not running (read: throttle)
// start the time iterator if not running (read: throttle)
if (timeIterator === null) {

@@ -226,3 +647,2 @@ timeIterator = setInterval(processNextKey, throttle);

});
writePromise = storage.setItem(storageKey, serialize(stagedState)).catch(onWriteFail);

@@ -239,2 +659,4 @@ }

// @TODO add fail handlers (typically storage full)
if (writeFailHandler) writeFailHandler(err);
if (err && "development" !== 'production') {

@@ -249,6 +671,7 @@ console.error('Error storing data', err);

}
return writePromise || Promise.resolve();
};
}; // return `persistoid`
// return `persistoid`
return {

@@ -258,5 +681,4 @@ update: update,

};
}
} // @NOTE in the future this may be exposed via config
// @NOTE in the future this may be exposed via config
function defaultSerialize(data) {

@@ -268,8 +690,17 @@ return JSON.stringify(data);

var transforms = config.transforms || [];
var storageKey = '' + (config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX) + config.key;
var storageKey = "".concat(config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX).concat(config.key);
var storage = config.storage;
var debug = config.debug;
var deserialize = config.serialize === false ? function (x) {
return x;
} : defaultDeserialize;
var deserialize;
if (!config.deserialize) {
deserialize = defaultDeserialize;
} else if (typeof config.deserialize === 'function') {
deserialize = config.deserialize;
} else {
deserialize = function deserialize(x) {
return x;
};
}
return storage.getItem(storageKey).then(function (serialized) {

@@ -287,3 +718,3 @@ if (!serialized) return undefined;else {

} catch (err) {
if ("development" !== 'production' && debug) console.log('redux-persist/getStoredState: Error restoring data ' + serialized, err);
if ("development" !== 'production' && debug) console.log("redux-persist/getStoredState: Error restoring data ".concat(serialized), err);
throw err;

@@ -301,3 +732,3 @@ }

var storage = config.storage;
var storageKey = '' + (config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX) + config.key;
var storageKey = "".concat(config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX).concat(config.key);
return storage.removeItem(storageKey, warnIfRemoveError);

@@ -318,2 +749,3 @@ }

*/
function persistReducer(config, baseReducer) {

@@ -334,2 +766,3 @@ {

var _paused = true;
var conditionalUpdate = function conditionalUpdate(state) {

@@ -344,4 +777,5 @@ // update the persistoid only if we are rehydrated and not paused

_persist = _ref._persist,
rest = objectWithoutProperties(_ref, ['_persist']);
rest = _objectWithoutProperties(_ref, ["_persist"]); // $FlowIgnore need to update State type
var restState = rest;

@@ -351,7 +785,7 @@

var _sealed = false;
var _rehydrate = function _rehydrate(payload, err) {
// dev warning if we are already sealed
if ("development" !== 'production' && _sealed) console.error('redux-persist: rehydrate for "' + config.key + '" called after timeout.', payload, err);
if ("development" !== 'production' && _sealed) console.error("redux-persist: rehydrate for \"".concat(config.key, "\" called after timeout."), payload, err); // only rehydrate if we are not already sealed
// only rehydrate if we are not already sealed
if (!_sealed) {

@@ -362,18 +796,14 @@ action.rehydrate(config.key, payload, err);

};
timeout && setTimeout(function () {
!_sealed && _rehydrate(undefined, new Error('redux-persist: persist timed out for persist key "' + config.key + '"'));
}, timeout);
!_sealed && _rehydrate(undefined, new Error("redux-persist: persist timed out for persist key \"".concat(config.key, "\"")));
}, timeout); // @NOTE PERSIST resumes if paused.
// @NOTE PERSIST resumes if paused.
_paused = false;
_paused = false; // @NOTE only ever create persistoid once, ensure we call it at least once, even if _persist has already been set
// @NOTE only ever create persistoid once, ensure we call it at least once, even if _persist has already been set
if (!_persistoid) _persistoid = createPersistoid(config);
if (!_persistoid) _persistoid = createPersistoid(config); // @NOTE PERSIST can be called multiple times, noop after the first
// @NOTE PERSIST can be called multiple times, noop after the first
if (_persist) return state;
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.');
action.register(config.key);
getStoredState$$1(config).then(function (restoredState) {

@@ -383,2 +813,3 @@ var migrate = config.migrate || function (s, v) {

};
migrate(restoredState, version).then(function (migratedState) {

@@ -388,2 +819,3 @@ _rehydrate(migratedState);

if ("development" !== 'production' && migrateErr) console.error('redux-persist: migration error', migrateErr);
_rehydrate(undefined, migrateErr);

@@ -394,5 +826,7 @@ });

});
return _extends({}, baseReducer(restState, action), {
_persist: { version: version, rehydrated: false }
return _objectSpread({}, baseReducer(restState, action), {
_persist: {
version: version,
rehydrated: false
}
});

@@ -402,3 +836,3 @@ } else if (action.type === PURGE) {

action.result(purgeStoredState(config));
return _extends({}, baseReducer(restState, action), {
return _objectSpread({}, baseReducer(restState, action), {
_persist: _persist

@@ -408,3 +842,3 @@ });

action.result(_persistoid && _persistoid.flush());
return _extends({}, baseReducer(restState, action), {
return _objectSpread({}, baseReducer(restState, action), {
_persist: _persist

@@ -416,233 +850,37 @@ });

// noop on restState if purging
if (_purge) return _extends({}, restState, {
_persist: _extends({}, _persist, { rehydrated: true })
if (_purge) return _objectSpread({}, restState, {
_persist: _objectSpread({}, _persist, {
rehydrated: true
}) // @NOTE if key does not match, will continue to default else below
// @NOTE if key does not match, will continue to default else below
});if (action.key === config.key) {
});
if (action.key === config.key) {
var reducedState = baseReducer(restState, action);
var inboundState = action.payload;
// only reconcile state if stateReconciler and inboundState are both defined
var inboundState = action.payload; // only reconcile state if stateReconciler and inboundState are both defined
var reconciledRest = stateReconciler !== false && inboundState !== undefined ? stateReconciler(inboundState, state, reducedState, config) : reducedState;
var _newState = _extends({}, reconciledRest, {
_persist: _extends({}, _persist, { rehydrated: true })
var _newState = _objectSpread({}, reconciledRest, {
_persist: _objectSpread({}, _persist, {
rehydrated: true
})
});
return conditionalUpdate(_newState);
}
}
} // if we have not already handled PERSIST, straight passthrough
// if we have not already handled PERSIST, straight passthrough
if (!_persist) return baseReducer(state, action);
// run base reducer:
if (!_persist) return baseReducer(state, action); // run base reducer:
// is state modified ? return original : return updated
var newState = baseReducer(restState, action);
if (newState === restState) return state;else {
newState._persist = _persist;
return conditionalUpdate(newState);
}
if (newState === restState) return state;
return conditionalUpdate(_objectSpread({}, newState, {
_persist: _persist
}));
};
}
/** Detect free variable `global` from Node.js. */
var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
/** Detect free variable `self`. */
var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
/** Used as a reference to the global object. */
var root = freeGlobal || freeSelf || Function('return this')();
/** Built-in value references. */
var Symbol$1 = root.Symbol;
/** Used for built-in method references. */
var objectProto = Object.prototype;
/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;
/**
* Used to resolve the
* [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
* of values.
*/
var nativeObjectToString = objectProto.toString;
/** Built-in value references. */
var symToStringTag = Symbol$1 ? Symbol$1.toStringTag : undefined;
/**
* A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
*
* @private
* @param {*} value The value to query.
* @returns {string} Returns the raw `toStringTag`.
*/
function getRawTag(value) {
var isOwn = hasOwnProperty.call(value, symToStringTag),
tag = value[symToStringTag];
try {
value[symToStringTag] = undefined;
var unmasked = true;
} catch (e) {}
var result = nativeObjectToString.call(value);
if (unmasked) {
if (isOwn) {
value[symToStringTag] = tag;
} else {
delete value[symToStringTag];
}
}
return result;
}
/** Used for built-in method references. */
var objectProto$1 = Object.prototype;
/**
* Used to resolve the
* [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
* of values.
*/
var nativeObjectToString$1 = objectProto$1.toString;
/**
* Converts `value` to a string using `Object.prototype.toString`.
*
* @private
* @param {*} value The value to convert.
* @returns {string} Returns the converted string.
*/
function objectToString(value) {
return nativeObjectToString$1.call(value);
}
/** `Object#toString` result references. */
var nullTag = '[object Null]';
var undefinedTag = '[object Undefined]';
/** Built-in value references. */
var symToStringTag$1 = Symbol$1 ? Symbol$1.toStringTag : undefined;
/**
* The base implementation of `getTag` without fallbacks for buggy environments.
*
* @private
* @param {*} value The value to query.
* @returns {string} Returns the `toStringTag`.
*/
function baseGetTag(value) {
if (value == null) {
return value === undefined ? undefinedTag : nullTag;
}
return (symToStringTag$1 && symToStringTag$1 in Object(value))
? getRawTag(value)
: objectToString(value);
}
/**
* Creates a unary function that invokes `func` with its argument transformed.
*
* @private
* @param {Function} func The function to wrap.
* @param {Function} transform The argument transform.
* @returns {Function} Returns the new function.
*/
function overArg(func, transform) {
return function(arg) {
return func(transform(arg));
};
}
/** Built-in value references. */
var getPrototype = overArg(Object.getPrototypeOf, Object);
/**
* Checks if `value` is object-like. A value is object-like if it's not `null`
* and has a `typeof` result of "object".
*
* @static
* @memberOf _
* @since 4.0.0
* @category Lang
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is object-like, else `false`.
* @example
*
* _.isObjectLike({});
* // => true
*
* _.isObjectLike([1, 2, 3]);
* // => true
*
* _.isObjectLike(_.noop);
* // => false
*
* _.isObjectLike(null);
* // => false
*/
function isObjectLike(value) {
return value != null && typeof value == 'object';
}
/** `Object#toString` result references. */
var objectTag = '[object Object]';
/** Used for built-in method references. */
var funcProto = Function.prototype;
var objectProto$2 = Object.prototype;
/** Used to resolve the decompiled source of functions. */
var funcToString = funcProto.toString;
/** Used to check objects for own properties. */
var hasOwnProperty$1 = objectProto$2.hasOwnProperty;
/** Used to infer the `Object` constructor. */
var objectCtorString = funcToString.call(Object);
/**
* Checks if `value` is a plain object, that is, an object created by the
* `Object` constructor or one with a `[[Prototype]]` of `null`.
*
* @static
* @memberOf _
* @since 0.8.0
* @category Lang
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is a plain object, else `false`.
* @example
*
* function Foo() {
* this.a = 1;
* }
*
* _.isPlainObject(new Foo);
* // => false
*
* _.isPlainObject([1, 2, 3]);
* // => false
*
* _.isPlainObject({ 'x': 0, 'y': 0 });
* // => true
*
* _.isPlainObject(Object.create(null));
* // => true
*/
function isPlainObject(value) {
if (!isObjectLike(value) || baseGetTag(value) != objectTag) {
return false;
}
var proto = getPrototype(value);
if (proto === null) {
return true;
}
var Ctor = hasOwnProperty$1.call(proto, 'constructor') && proto.constructor;
return typeof Ctor == 'function' && Ctor instanceof Ctor &&
funcToString.call(Ctor) == objectCtorString;
}
function symbolObservablePonyfill(root) {

@@ -667,17 +905,17 @@ var result;

/* global window */
var root$2;
var root;
if (typeof self !== 'undefined') {
root$2 = self;
root = self;
} else if (typeof window !== 'undefined') {
root$2 = window;
root = window;
} else if (typeof global !== 'undefined') {
root$2 = global;
root = global;
} else if (typeof module !== 'undefined') {
root$2 = module;
root = module;
} else {
root$2 = Function('return this')();
root = Function('return this')();
}
var result = symbolObservablePonyfill(root$2);
var result = symbolObservablePonyfill(root);

@@ -690,33 +928,62 @@ /**

*/
var randomString = function randomString() {
return Math.random().toString(36).substring(7).split('').join('.');
};
var ActionTypes = {
INIT: '@@redux/INIT'
INIT: "@@redux/INIT" + randomString(),
REPLACE: "@@redux/REPLACE" + randomString(),
PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {
return "@@redux/PROBE_UNKNOWN_ACTION" + randomString();
}
};
/**
* Creates a Redux store that holds the state tree.
* The only way to change the data in the store is to call `dispatch()` on it.
*
* There should only be a single store in your app. To specify how different
* parts of the state tree respond to actions, you may combine several reducers
* into a single reducer function by using `combineReducers`.
*
* @param {Function} reducer A function that returns the next state tree, given
* the current state tree and the action to handle.
*
* @param {any} [preloadedState] The initial state. You may optionally specify it
* to hydrate the state from the server in universal apps, or to restore a
* previously serialized user session.
* If you use `combineReducers` to produce the root reducer function, this must be
* an object with the same shape as `combineReducers` keys.
*
* @param {Function} [enhancer] The store enhancer. You may optionally specify it
* to enhance the store with third-party capabilities such as middleware,
* time travel, persistence, etc. The only store enhancer that ships with Redux
* is `applyMiddleware()`.
*
* @returns {Store} A Redux store that lets you read the state, dispatch actions
* and subscribe to changes.
*/
};function createStore(reducer, preloadedState, enhancer) {
/**
* @param {any} obj The object to inspect.
* @returns {boolean} True if the argument appears to be a plain object.
*/
function isPlainObject(obj) {
if (typeof obj !== 'object' || obj === null) return false;
var proto = obj;
while (Object.getPrototypeOf(proto) !== null) {
proto = Object.getPrototypeOf(proto);
}
return Object.getPrototypeOf(obj) === proto;
}
/**
* Creates a Redux store that holds the state tree.
* The only way to change the data in the store is to call `dispatch()` on it.
*
* There should only be a single store in your app. To specify how different
* parts of the state tree respond to actions, you may combine several reducers
* into a single reducer function by using `combineReducers`.
*
* @param {Function} reducer A function that returns the next state tree, given
* the current state tree and the action to handle.
*
* @param {any} [preloadedState] The initial state. You may optionally specify it
* to hydrate the state from the server in universal apps, or to restore a
* previously serialized user session.
* If you use `combineReducers` to produce the root reducer function, this must be
* an object with the same shape as `combineReducers` keys.
*
* @param {Function} [enhancer] The store enhancer. You may optionally specify it
* to enhance the store with third-party capabilities such as middleware,
* time travel, persistence, etc. The only store enhancer that ships with Redux
* is `applyMiddleware()`.
*
* @returns {Store} A Redux store that lets you read the state, dispatch actions
* and subscribe to changes.
*/
function createStore(reducer, preloadedState, enhancer) {
var _ref2;
if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {
throw new Error('It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function');
}
if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {

@@ -750,3 +1017,2 @@ enhancer = preloadedState;

}
/**

@@ -757,6 +1023,11 @@ * Reads the state tree managed by the store.

*/
function getState() {
if (isDispatching) {
throw new Error('You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');
}
return currentState;
}
/**

@@ -785,12 +1056,16 @@ * Adds a change listener. It will be called any time an action is dispatched,

*/
function subscribe(listener) {
if (typeof listener !== 'function') {
throw new Error('Expected listener to be a function.');
throw new Error('Expected the listener to be a function.');
}
if (isDispatching) {
throw new Error('You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api-reference/store#subscribe(listener) for more details.');
}
var isSubscribed = true;
ensureCanMutateNextListeners();
nextListeners.push(listener);
return function unsubscribe() {

@@ -801,4 +1076,7 @@ if (!isSubscribed) {

if (isDispatching) {
throw new Error('You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api-reference/store#subscribe(listener) for more details.');
}
isSubscribed = false;
ensureCanMutateNextListeners();

@@ -809,3 +1087,2 @@ var index = nextListeners.indexOf(listener);

}
/**

@@ -836,2 +1113,4 @@ * Dispatches an action. It is the only way to trigger a state change.

*/
function dispatch(action) {

@@ -858,2 +1137,3 @@ if (!isPlainObject(action)) {

var listeners = currentListeners = nextListeners;
for (var i = 0; i < listeners.length; i++) {

@@ -866,3 +1146,2 @@ var listener = listeners[i];

}
/**

@@ -878,2 +1157,4 @@ * Replaces the reducer currently used by the store to calculate the state.

*/
function replaceReducer(nextReducer) {

@@ -885,5 +1166,6 @@ if (typeof nextReducer !== 'function') {

currentReducer = nextReducer;
dispatch({ type: ActionTypes.INIT });
dispatch({
type: ActionTypes.REPLACE
});
}
/**

@@ -895,2 +1177,4 @@ * Interoperability point for observable/reactive libraries.

*/
function observable() {

@@ -910,3 +1194,3 @@ var _ref;

subscribe: function subscribe(observer) {
if (typeof observer !== 'object') {
if (typeof observer !== 'object' || observer === null) {
throw new TypeError('Expected the observer to be an object.');

@@ -923,3 +1207,5 @@ }

var unsubscribe = outerSubscribe(observeState);
return { unsubscribe: unsubscribe };
return {
unsubscribe: unsubscribe
};
}

@@ -929,9 +1215,10 @@ }, _ref[result] = function () {

}, _ref;
}
// When a store is created, an "INIT" action is dispatched so that every
} // When a store is created, an "INIT" action is dispatched so that every
// reducer returns their initial state. This effectively populates
// the initial state tree.
dispatch({ type: ActionTypes.INIT });
dispatch({
type: ActionTypes.INIT
});
return _ref2 = {

@@ -957,2 +1244,4 @@ dispatch: dispatch,

/* eslint-enable no-console */
try {

@@ -963,5 +1252,4 @@ // This error was thrown as a convenience so that if you enable

throw new Error(message);
/* eslint-disable no-empty */
} catch (e) {}
/* eslint-enable no-empty */
} catch (e) {} // eslint-disable-line no-empty
}

@@ -971,5 +1259,4 @@

var actionType = action && action.type;
var actionName = actionType && '"' + actionType.toString() + '"' || 'an action';
return 'Given action ' + actionName + ', reducer "' + key + '" returned undefined. ' + 'To ignore an action, you must explicitly return the previous state. ' + 'If you want this reducer to hold no value, you can return null instead of undefined.';
var actionDescription = actionType && "action \"" + String(actionType) + "\"" || 'an action';
return "Given " + actionDescription + ", reducer \"" + key + "\" returned undefined. " + "To ignore an action, you must explicitly return the previous state. " + "If you want this reducer to hold no value, you can return null instead of undefined.";
}

@@ -986,3 +1273,3 @@

if (!isPlainObject(inputState)) {
return 'The ' + argumentName + ' has unexpected type of "' + {}.toString.call(inputState).match(/\s([a-z|A-Z]+)/)[1] + '". Expected argument to be an object with the following ' + ('keys: "' + reducerKeys.join('", "') + '"');
return "The " + argumentName + " has unexpected type of \"" + {}.toString.call(inputState).match(/\s([a-z|A-Z]+)/)[1] + "\". Expected argument to be an object with the following " + ("keys: \"" + reducerKeys.join('", "') + "\"");
}

@@ -993,9 +1280,9 @@

});
unexpectedKeys.forEach(function (key) {
unexpectedKeyCache[key] = true;
});
if (action && action.type === ActionTypes.REPLACE) return;
if (unexpectedKeys.length > 0) {
return 'Unexpected ' + (unexpectedKeys.length > 1 ? 'keys' : 'key') + ' ' + ('"' + unexpectedKeys.join('", "') + '" found in ' + argumentName + '. ') + 'Expected to find one of the known reducer keys instead: ' + ('"' + reducerKeys.join('", "') + '". Unexpected keys will be ignored.');
return "Unexpected " + (unexpectedKeys.length > 1 ? 'keys' : 'key') + " " + ("\"" + unexpectedKeys.join('", "') + "\" found in " + argumentName + ". ") + "Expected to find one of the known reducer keys instead: " + ("\"" + reducerKeys.join('", "') + "\". Unexpected keys will be ignored.");
}

@@ -1007,15 +1294,17 @@ }

var reducer = reducers[key];
var initialState = reducer(undefined, { type: ActionTypes.INIT });
var initialState = reducer(undefined, {
type: ActionTypes.INIT
});
if (typeof initialState === 'undefined') {
throw new Error('Reducer "' + key + '" returned undefined during initialization. ' + 'If the state passed to the reducer is undefined, you must ' + 'explicitly return the initial state. The initial state may ' + 'not be undefined. If you don\'t want to set a value for this reducer, ' + 'you can use null instead of undefined.');
throw new Error("Reducer \"" + key + "\" returned undefined during initialization. " + "If the state passed to the reducer is undefined, you must " + "explicitly return the initial state. The initial state may " + "not be undefined. If you don't want to set a value for this reducer, " + "you can use null instead of undefined.");
}
var type = '@@redux/PROBE_UNKNOWN_ACTION_' + Math.random().toString(36).substring(7).split('').join('.');
if (typeof reducer(undefined, { type: type }) === 'undefined') {
throw new Error('Reducer "' + key + '" returned undefined when probed with a random type. ' + ('Don\'t try to handle ' + ActionTypes.INIT + ' or other actions in "redux/*" ') + 'namespace. They are considered private. Instead, you must return the ' + 'current state for any unknown actions, unless it is undefined, ' + 'in which case you must return the initial state, regardless of the ' + 'action type. The initial state may not be undefined, but can be null.');
if (typeof reducer(undefined, {
type: ActionTypes.PROBE_UNKNOWN_ACTION()
}) === 'undefined') {
throw new Error("Reducer \"" + key + "\" returned undefined when probed with a random type. " + ("Don't try to handle " + ActionTypes.INIT + " or other actions in \"redux/*\" ") + "namespace. They are considered private. Instead, you must return the " + "current state for any unknown actions, unless it is undefined, " + "in which case you must return the initial state, regardless of the " + "action type. The initial state may not be undefined, but can be null.");
}
});
}
/**

@@ -1037,5 +1326,8 @@ * Turns an object whose values are different reducer functions, into a single

*/
function combineReducers(reducers) {
var reducerKeys = Object.keys(reducers);
var finalReducers = {};
for (var i = 0; i < reducerKeys.length; i++) {

@@ -1046,3 +1338,3 @@ var key = reducerKeys[i];

if (typeof reducers[key] === 'undefined') {
warning('No reducer provided for key "' + key + '"');
warning("No reducer provided for key \"" + key + "\"");
}

@@ -1055,5 +1347,6 @@ }

}
var finalReducerKeys = Object.keys(finalReducers);
var unexpectedKeyCache;
var unexpectedKeyCache = void 0;
{

@@ -1063,3 +1356,4 @@ unexpectedKeyCache = {};

var shapeAssertionError = void 0;
var shapeAssertionError;
try {

@@ -1071,5 +1365,6 @@ assertReducerShape(finalReducers);

return function combination() {
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var action = arguments[1];
return function combination(state, action) {
if (state === void 0) {
state = {};
}

@@ -1082,2 +1377,3 @@ if (shapeAssertionError) {

var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);
if (warningMessage) {

@@ -1090,2 +1386,3 @@ warning(warningMessage);

var nextState = {};
for (var _i = 0; _i < finalReducerKeys.length; _i++) {

@@ -1096,2 +1393,3 @@ var _key = finalReducerKeys[_i];

var nextStateForKey = reducer(previousStateForKey, action);
if (typeof nextStateForKey === 'undefined') {

@@ -1101,5 +1399,7 @@ var errorMessage = getUndefinedStateErrorMessage(_key, action);

}
nextState[_key] = nextStateForKey;
hasChanged = hasChanged || nextStateForKey !== previousStateForKey;
}
return hasChanged ? nextState : state;

@@ -1109,33 +1409,30 @@ };

/**
* Composes single-argument functions from right to left. The rightmost
* function can take multiple arguments as it provides the signature for
* the resulting composite function.
*
* @param {...Function} funcs The functions to compose.
* @returns {Function} A function obtained by composing the argument functions
* from right to left. For example, compose(f, g, h) is identical to doing
* (...args) => f(g(h(...args))).
/*
* This is a dummy function to check if the function name has been altered by minification.
* If the function has been minified and NODE_ENV !== 'production', warn the user.
*/
/*
* This is a dummy function to check if the function name has been altered by minification.
* If the function has been minified and NODE_ENV !== 'production', warn the user.
*/
function isCrushed() {}
if ("development" !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {
warning('You are currently using minified code outside of NODE_ENV === \'production\'. ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or DefinePlugin for webpack (http://stackoverflow.com/questions/30030031) ' + 'to ensure you have the correct code for your production build.');
warning('You are currently using minified code outside of NODE_ENV === "production". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');
}
/*
autoMergeLevel2:
- merges 2 level of substate
- skips substate if already modified
- this is essentially redux-perist v4 behavior
*/
function autoMergeLevel2(inboundState, originalState, reducedState, _ref) {
var debug = _ref.debug;
var newState = _extends({}, reducedState);
// only rehydrate if inboundState exists and is an object
if (inboundState && (typeof inboundState === 'undefined' ? 'undefined' : _typeof(inboundState)) === 'object') {
var newState = _objectSpread({}, reducedState); // only rehydrate if inboundState exists and is an object
if (inboundState && _typeof(inboundState) === 'object') {
Object.keys(inboundState).forEach(function (key) {
// ignore _persist data
if (key === '_persist') return;
// if reducer modifies substate, skip auto rehydration
if (key === '_persist') return; // if reducer modifies substate, skip auto rehydration
if (originalState[key] !== reducedState[key]) {

@@ -1145,8 +1442,10 @@ if ("development" !== 'production' && debug) console.log('redux-persist/stateReconciler: sub state for key `%s` modified, skipping.', key);

}
if (isPlainEnoughObject(reducedState[key])) {
// if object is plain enough shallow merge the new values (hence "Level2")
newState[key] = _extends({}, newState[key], inboundState[key]);
newState[key] = _objectSpread({}, newState[key], inboundState[key]);
return;
}
// otherwise hard set
} // otherwise hard set
newState[key] = inboundState[key];

@@ -1156,16 +1455,8 @@ });

if ("development" !== 'production' && debug && inboundState && (typeof inboundState === 'undefined' ? 'undefined' : _typeof(inboundState)) === 'object') console.log('redux-persist/stateReconciler: rehydrated keys \'' + Object.keys(inboundState).join(', ') + '\'');
if ("development" !== 'production' && debug && inboundState && _typeof(inboundState) === 'object') console.log("redux-persist/stateReconciler: rehydrated keys '".concat(Object.keys(inboundState).join(', '), "'"));
return newState;
}
/*
autoMergeLevel2:
- merges 2 level of substate
- skips substate if already modified
- this is essentially redux-perist v4 behavior
*/
function isPlainEnoughObject(o) {
return o !== null && !Array.isArray(o) && (typeof o === 'undefined' ? 'undefined' : _typeof(o)) === 'object';
return o !== null && !Array.isArray(o) && _typeof(o) === 'object';
}

@@ -1179,2 +1470,19 @@

var $at = require('./_string-at')(true);
// 21.1.3.27 String.prototype[@@iterator]()
require('./_iter-define')(String, 'String', function (iterated) {
this._t = String(iterated); // target
this._i = 0; // next index
// 21.1.5.2.1 %StringIteratorPrototype%.next()
}, function () {
var O = this._t;
var index = this._i;
var point;
if (index >= O.length) return { value: undefined, done: true };
point = $at(O, index);
this._i += point.length;
return { value: point, done: false };
});
var initialState = {

@@ -1187,12 +1495,21 @@ registry: [],

var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
var action = arguments[1];
var action = arguments.length > 1 ? arguments[1] : undefined;
switch (action.type) {
case REGISTER:
return _extends({}, state, { registry: [].concat(toConsumableArray(state.registry), [action.key]) });
return _objectSpread({}, state, {
registry: [].concat(_toConsumableArray(state.registry), [action.key])
});
case REHYDRATE:
var firstIndex = state.registry.indexOf(action.key);
var registry = [].concat(toConsumableArray(state.registry));
var registry = _toConsumableArray(state.registry);
registry.splice(firstIndex, 1);
return _extends({}, state, { registry: registry, bootstrapped: registry.length === 0 });
return _objectSpread({}, state, {
registry: registry,
bootstrapped: registry.length === 0
});
default:

@@ -1209,8 +1526,10 @@ return state;

bannedKeys.forEach(function (k) {
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.');
if (!!optionsToTest[k]) console.error("redux-persist: invalid option passed to persistStore: \"".concat(k, "\". You may be incorrectly passing persistConfig into persistStore, whereas it should be passed into persistReducer."));
});
}
var boostrappedCb = cb || false;
var _pStore = createStore(persistorReducer, initialState, options ? options.enhancer : undefined);
var register = function register(key) {

@@ -1228,6 +1547,9 @@ _pStore.dispatch({

err: err,
key: key
// dispatch to `store` to rehydrate and `persistor` to track result
};store.dispatch(rehydrateAction);
key: key // dispatch to `store` to rehydrate and `persistor` to track result
};
store.dispatch(rehydrateAction);
_pStore.dispatch(rehydrateAction);
if (boostrappedCb && persistor.getState().bootstrapped) {

@@ -1239,3 +1561,3 @@ boostrappedCb();

var persistor = _extends({}, _pStore, {
var persistor = _objectSpread({}, _pStore, {
purge: function purge() {

@@ -1267,3 +1589,7 @@ var results = [];

persist: function persist() {
store.dispatch({ type: PERSIST, register: register, rehydrate: rehydrate });
store.dispatch({
type: PERSIST,
register: register,
rehydrate: rehydrate
});
}

@@ -1273,6 +1599,28 @@ });

persistor.persist();
return persistor;
}
var $export$1 = require('./_export');
var aFunction$1 = require('./_a-function');
var toObject$1 = require('./_to-object');
var fails = require('./_fails');
var $sort = [].sort;
var test$1 = [1, 2, 3];
$export$1($export$1.P + $export$1.F * (fails(function () {
// IE8-
test$1.sort(undefined);
}) || !fails(function () {
// V8 bug
test$1.sort(null);
// Old WebKit
}) || !require('./_strict-method')($sort)), 'Array', {
// 22.1.3.25 Array.prototype.sort(comparefn)
sort: function sort(comparefn) {
return comparefn === undefined
? $sort.call(toObject$1(this))
: $sort.call(toObject$1(this), aFunction$1(comparefn));
}
});
function createMigrate(migrations, config) {

@@ -1289,2 +1637,3 @@ var _ref = config || {},

var inboundVersion = state._persist && state._persist.version !== undefined ? state._persist.version : DEFAULT_VERSION;
if (inboundVersion === currentVersion) {

@@ -1294,2 +1643,3 @@ if ("development" !== 'production' && debug) console.log('redux-persist: versions match, noop migration');

}
if (inboundVersion > currentVersion) {

@@ -1307,4 +1657,4 @@ console.error('redux-persist: downgrading version is not supported');

});
if ("development" !== 'production' && debug) console.log('redux-persist: migrationKeys', migrationKeys);
if ("development" !== 'production' && debug) console.log('redux-persist: migrationKeys', migrationKeys);
try {

@@ -1322,9 +1672,6 @@ var migratedState = migrationKeys.reduce(function (state, versionKey) {

function createTransform(
// @NOTE inbound: transform state coming from redux on its way to being serialized and stored
inbound,
// @NOTE outbound: transform state coming from storage, on its way to be rehydrated into redux
function createTransform( // @NOTE inbound: transform state coming from redux on its way to being serialized and stored
inbound, // @NOTE outbound: transform state coming from storage, on its way to be rehydrated into redux
outbound) {
var config = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
var whitelist = config.whitelist || null;

@@ -1331,0 +1678,0 @@ var blacklist = config.blacklist || null;

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

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(e.ReduxPersist={})}(this,function(e){"use strict";var t="persist:",r="persist/FLUSH",n="persist/REHYDRATE",o="persist/PAUSE",i="persist/PERSIST",u="persist/PURGE",s="persist/REGISTER",c=-1,a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},f=Object.assign||function(e){for(var t=1;arguments.length>t;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},d=function(e,t){var r={};for(var n in e)0>t.indexOf(n)&&Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r},l=function(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);e.length>t;t++)r[t]=e[t];return r}return Array.from(e)};function p(e,t,r,n){var o=f({},r);return e&&"object"===(void 0===e?"undefined":a(e))&&Object.keys(e).forEach(function(n){"_persist"!==n&&t[n]===r[n]&&(o[n]=e[n])}),o}function y(e){var r=e.blacklist||null,n=e.whitelist||null,o=e.transforms||[],i=e.throttle||0,u=""+(void 0!==e.keyPrefix?e.keyPrefix:t)+e.key,s=e.storage,c=!1===e.serialize?function(e){return e}:v,a={},f={},d=[],l=null,p=null;function y(){if(0===d.length)return l&&clearInterval(l),void(l=null);var e=d.shift(),t=o.reduce(function(t,r){return r.in(t,e,a)},a[e]);if(void 0!==t)try{f[e]=c(t)}catch(e){console.error("redux-persist/createPersistoid: error serializing state",e)}else delete f[e];0===d.length&&(Object.keys(f).forEach(function(e){void 0===a[e]&&delete f[e]}),p=s.setItem(u,c(f)).catch(h))}function h(e){0}return{update:function(e){Object.keys(e).forEach(function(t){(function(e){return!(n&&-1===n.indexOf(e)&&"_persist"!==e||r&&-1!==r.indexOf(e))})(t)&&a[t]!==e[t]&&-1===d.indexOf(t)&&d.push(t)}),Object.keys(a).forEach(function(t){void 0===e[t]&&d.push(t)}),null===l&&(l=setInterval(y,i)),a=e},flush:function(){for(;0!==d.length;)y();return p||Promise.resolve()}}}function v(e){return JSON.stringify(e)}function h(e){var r=e.transforms||[],n=!1===e.serialize?function(e){return e}:b;return e.storage.getItem(""+(void 0!==e.keyPrefix?e.keyPrefix:t)+e.key).then(function(e){if(e)try{var t={},o=n(e);return Object.keys(o).forEach(function(e){t[e]=r.reduceRight(function(t,r){return r.out(t,e,o)},n(o[e]))}),t}catch(e){throw e}})}function b(e){return JSON.parse(e)}function g(e){return e.storage.removeItem(""+(void 0!==e.keyPrefix?e.keyPrefix:t)+e.key,m)}function m(e){0}var E=5e3;function O(e,t){var s=void 0!==e.version?e.version:c,a=void 0===e.stateReconciler?p:e.stateReconciler,l=e.getStoredState||h,v=void 0!==e.timeout?e.timeout:E,b=null,m=!1,O=!0,j=function(e){return e._persist.rehydrated&&b&&!O&&b.update(e),e};return function(c,p){var h=c||{},E=h._persist,S=d(h,["_persist"]);if(p.type===i){var w=!1,x=function(t,r){w||(p.rehydrate(e.key,t,r),w=!0)};if(v&&setTimeout(function(){!w&&x(void 0,Error('redux-persist: persist timed out for persist key "'+e.key+'"'))},v),O=!1,b||(b=y(e)),E)return c;if("function"!=typeof p.rehydrate||"function"!=typeof p.register)throw 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.");return p.register(e.key),l(e).then(function(t){(e.migrate||function(e,t){return Promise.resolve(e)})(t,s).then(function(e){x(e)},function(e){x(void 0,e)})},function(e){x(void 0,e)}),f({},t(S,p),{_persist:{version:s,rehydrated:!1}})}if(p.type===u)return m=!0,p.result(g(e)),f({},t(S,p),{_persist:E});if(p.type===r)return p.result(b&&b.flush()),f({},t(S,p),{_persist:E});if(p.type===o)O=!0;else if(p.type===n){if(m)return f({},S,{_persist:f({},E,{rehydrated:!0})});if(p.key===e.key){var P=t(S,p),k=p.payload,I=!1!==a&&void 0!==k?a(k,c,P,e):P,R=f({},I,{_persist:f({},E,{rehydrated:!0})});return j(R)}}if(!E)return t(c,p);var T=t(S,p);return T===S?c:(T._persist=E,j(T))}}var j="object"==typeof global&&global&&global.Object===Object&&global,S="object"==typeof self&&self&&self.Object===Object&&self,w=(j||S||Function("return this")()).Symbol,x=Object.prototype,P=x.hasOwnProperty,k=x.toString,I=w?w.toStringTag:void 0;var R=Object.prototype.toString;var T="[object Null]",_="[object Undefined]",A=w?w.toStringTag:void 0;function N(e){return null==e?void 0===e?_:T:A&&A in Object(e)?function(e){var t=P.call(e,I),r=e[I];try{e[I]=void 0;var n=!0}catch(e){}var o=k.call(e);return n&&(t?e[I]=r:delete e[I]),o}(e):function(e){return R.call(e)}(e)}var U,F,G=(U=Object.getPrototypeOf,F=Object,function(e){return U(F(e))});var H="[object Object]",z=Function.prototype.toString,D=Object.prototype.hasOwnProperty,L=z.call(Object);var M=function(e){var t,r=e.Symbol;return"function"==typeof r?r.observable?t=r.observable:(t=r("observable"),r.observable=t):t="@@observable",t}("undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof module?module:Function("return this")()),Y={INIT:"@@redux/INIT"};function C(e,t,r){var n;if("function"==typeof t&&void 0===r&&(r=t,t=void 0),void 0!==r){if("function"!=typeof r)throw Error("Expected the enhancer to be a function.");return r(C)(e,t)}if("function"!=typeof e)throw Error("Expected the reducer to be a function.");var o=e,i=t,u=[],s=u,c=!1;function a(){s===u&&(s=u.slice())}function f(){return i}function d(e){if("function"!=typeof e)throw Error("Expected listener to be a function.");var t=!0;return a(),s.push(e),function(){if(t){t=!1,a();var r=s.indexOf(e);s.splice(r,1)}}}function l(e){if(!function(e){if(!function(e){return null!=e&&"object"==typeof e}(e)||N(e)!=H)return!1;var t=G(e);if(null===t)return!0;var r=D.call(t,"constructor")&&t.constructor;return"function"==typeof r&&r instanceof r&&z.call(r)==L}(e))throw Error("Actions must be plain objects. Use custom middleware for async actions.");if(void 0===e.type)throw Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');if(c)throw Error("Reducers may not dispatch actions.");try{c=!0,i=o(i,e)}finally{c=!1}for(var t=u=s,r=0;t.length>r;r++){(0,t[r])()}return e}return l({type:Y.INIT}),(n={dispatch:l,subscribe:d,getState:f,replaceReducer:function(e){if("function"!=typeof e)throw Error("Expected the nextReducer to be a function.");o=e,l({type:Y.INIT})}})[M]=function(){var e,t=d;return(e={subscribe:function(e){if("object"!=typeof e)throw new TypeError("Expected the observer to be an object.");function r(){e.next&&e.next(f())}return r(),{unsubscribe:t(r)}}})[M]=function(){return this},e},n}function J(e,t){var r=t&&t.type;return"Given action "+(r&&'"'+r+'"'||"an action")+', reducer "'+e+'" returned undefined. To ignore an action, you must explicitly return the previous state. If you want this reducer to hold no value, you can return null instead of undefined.'}function K(e){for(var t=Object.keys(e),r={},n=0;t.length>n;n++){var o=t[n];"function"==typeof e[o]&&(r[o]=e[o])}var i=Object.keys(r),u=void 0;try{!function(e){Object.keys(e).forEach(function(t){var r=e[t];if(void 0===r(void 0,{type:Y.INIT}))throw Error('Reducer "'+t+"\" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.");if(void 0===r(void 0,{type:"@@redux/PROBE_UNKNOWN_ACTION_"+Math.random().toString(36).substring(7).split("").join(".")}))throw Error('Reducer "'+t+"\" returned undefined when probed with a random type. Don't try to handle "+Y.INIT+' or other actions in "redux/*" namespace. They are considered private. Instead, you must return the current state for any unknown actions, unless it is undefined, in which case you must return the initial state, regardless of the action type. The initial state may not be undefined, but can be null.')})}(r)}catch(e){u=e}return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments[1];if(u)throw u;for(var n=!1,o={},s=0;i.length>s;s++){var c=i[s],a=e[c],f=(0,r[c])(a,t);if(void 0===f){var d=J(c,t);throw Error(d)}o[c]=f,n=n||f!==a}return n?o:e}}function B(e,t,r,n){var o=f({},r);return e&&"object"===(void 0===e?"undefined":a(e))&&Object.keys(e).forEach(function(n){var i;"_persist"!==n&&(t[n]===r[n]&&(o[n]=null===(i=r[n])||Array.isArray(i)||"object"!==(void 0===i?"undefined":a(i))?e[n]:f({},o[n],e[n])))}),o}var V={registry:[],bootstrapped:!1},W=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:V,t=arguments[1];switch(t.type){case s:return f({},e,{registry:[].concat(l(e.registry),[t.key])});case n:var r=e.registry.indexOf(t.key),o=[].concat(l(e.registry));return o.splice(r,1),f({},e,{registry:o,bootstrapped:0===o.length});default:return e}};e.persistReducer=O,e.persistCombineReducers=function(e,t){return e.stateReconciler=void 0===e.stateReconciler?B:e.stateReconciler,O(e,K(t))},e.persistStore=function(e,t,c){var a=c||!1,d=C(W,V,t?t.enhancer:void 0),l=function(e){d.dispatch({type:s,key:e})},p=function(t,r,o){var i={type:n,payload:r,err:o,key:t};e.dispatch(i),d.dispatch(i),a&&y.getState().bootstrapped&&(a(),a=!1)},y=f({},d,{purge:function(){var t=[];return e.dispatch({type:u,result:function(e){t.push(e)}}),Promise.all(t)},flush:function(){var t=[];return e.dispatch({type:r,result:function(e){t.push(e)}}),Promise.all(t)},pause:function(){e.dispatch({type:o})},persist:function(){e.dispatch({type:i,register:l,rehydrate:p})}});return y.persist(),y},e.createMigrate=function(e,t){return function(t,r){if(!t)return Promise.resolve(void 0);var n=t._persist&&void 0!==t._persist.version?t._persist.version:c;if(n===r)return Promise.resolve(t);if(n>r)return Promise.resolve(t);var o=Object.keys(e).map(function(e){return parseInt(e)}).filter(function(e){return r>=e&&e>n}).sort(function(e,t){return e-t});try{var i=o.reduce(function(t,r){return e[r](t)},t);return Promise.resolve(i)}catch(e){return Promise.reject(e)}}},e.createTransform=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=r.whitelist||null,o=r.blacklist||null;function i(e){return!(!n||-1!==n.indexOf(e))||!(!o||-1===o.indexOf(e))}return{in:function(t,r,n){return!i(r)&&e?e(t,r,n):t},out:function(e,r,n){return!i(r)&&t?t(e,r,n):e}}},e.getStoredState=h,e.createPersistoid=y,e.purgeStoredState=g,e.KEY_PREFIX=t,e.FLUSH=r,e.REHYDRATE=n,e.PAUSE=o,e.PERSIST=i,e.PURGE=u,e.REGISTER=s,e.DEFAULT_VERSION=c,Object.defineProperty(e,"__esModule",{value:!0})});
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(e.ReduxPersist={})}(this,function(e){"use strict";function t(e){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function r(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e){for(var t=1;arguments.length>t;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){r(e,t,n[t])})}return e}function i(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r,n,i={},o=Object.keys(e);for(n=0;o.length>n;n++)0>t.indexOf(r=o[n])&&(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;o.length>n;n++)0>t.indexOf(r=o[n])&&Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}function o(e){return function(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);e.length>t;t++)r[t]=e[t];return r}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}var s,u,c,a,f=require("./_library"),l=require("./_global"),d=require("./_ctx"),h=require("./_classof"),p=require("./_export"),y=require("./_is-object"),v=require("./_a-function"),_=require("./_an-instance"),b=require("./_for-of"),m=require("./_species-constructor"),g=require("./_task").set,S=require("./_microtask")(),E=require("./_new-promise-capability"),w=require("./_perform"),O=require("./_user-agent"),P=require("./_promise-resolve"),j=l.TypeError,k=l.process,x=k&&k.versions,q=x&&x.v8||"",T=l.Promise,R="process"==h(k),I=function(){},L=u=E.f,A=!!function(){try{var e=T.resolve(1),t=(e.constructor={})[require("./_wks")("species")]=function(e){e(I,I)};return(R||"function"==typeof PromiseRejectionEvent)&&e.then(I)instanceof t&&0!==q.indexOf("6.6")&&-1===O.indexOf("Chrome/66")}catch(e){}}(),N=function(e){var t;return!(!y(e)||"function"!=typeof(t=e.then))&&t},C=function(e,t){if(!e._n){e._n=!0;var r=e._c;S(function(){for(var n=e._v,i=1==e._s,o=0,s=function(t){var r,o,s,u=i?t.ok:t.fail,c=t.resolve,a=t.reject,f=t.domain;try{u?(i||(2==e._h&&G(e),e._h=1),!0===u?r=n:(f&&f.enter(),r=u(n),f&&(f.exit(),s=!0)),r===t.promise?a(j("Promise-chain cycle")):(o=N(r))?o.call(r,c,a):c(r)):a(n)}catch(e){f&&!s&&f.exit(),a(e)}};r.length>o;)s(r[o++]);e._c=[],e._n=!1,t&&!e._h&&F(e)})}},F=function(e){g.call(l,function(){var t,r,n,i=e._v,o=M(e);if(o&&(t=w(function(){R?k.emit("unhandledRejection",i,e):(r=l.onunhandledrejection)?r({promise:e,reason:i}):(n=l.console)&&n.error&&n.error("Unhandled promise rejection",i)}),e._h=R||M(e)?2:1),e._a=void 0,o&&t.e)throw t.v})},M=function(e){return 1!==e._h&&0===(e._a||e._c).length},G=function(e){g.call(l,function(){var t;R?k.emit("rejectionHandled",e):(t=l.onrejectionhandled)&&t({promise:e,reason:e._v})})},U=function(e){var t=this;t._d||(t._d=!0,(t=t._w||t)._v=e,t._s=2,t._a||(t._a=t._c.slice()),C(t,!0))},H=function(e){var t,r=this;if(!r._d){r._d=!0,r=r._w||r;try{if(r===e)throw j("Promise can't be resolved itself");(t=N(e))?S(function(){var n={_w:r,_d:!1};try{t.call(e,d(H,n,1),d(U,n,1))}catch(e){U.call(n,e)}}):(r._v=e,r._s=1,C(r,!1))}catch(e){U.call({_w:r,_d:!1},e)}}};A||(T=function(e){_(this,T,"Promise","_h"),v(e),s.call(this);try{e(d(H,this,1),d(U,this,1))}catch(e){U.call(this,e)}},(s=function(e){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=require("./_redefine-all")(T.prototype,{then:function(e,t){var r=L(m(this,T));return r.ok="function"!=typeof e||e,r.fail="function"==typeof t&&t,r.domain=R?k.domain:void 0,this._c.push(r),this._a&&this._a.push(r),this._s&&C(this,!1),r.promise},catch:function(e){return this.then(void 0,e)}}),c=function(){var e=new s;this.promise=e,this.resolve=d(H,e,1),this.reject=d(U,e,1)},E.f=L=function(e){return e===T||e===a?new c(e):u(e)}),p(p.G+p.W+p.F*!A,{Promise:T}),require("./_set-to-string-tag")(T,"Promise"),require("./_set-species")("Promise"),a=require("./_core").Promise,p(p.S+p.F*!A,"Promise",{reject:function(e){var t=L(this);return(0,t.reject)(e),t.promise}}),p(p.S+p.F*(f||!A),"Promise",{resolve:function(e){return P(f&&this===a?T:this,e)}}),p(p.S+p.F*!(A&&require("./_iter-detect")(function(e){T.all(e).catch(I)})),"Promise",{all:function(e){var t=this,r=L(t),n=r.resolve,i=r.reject,o=w(function(){var r=[],o=0,s=1;b(e,!1,function(e){var u=o++,c=!1;r.push(void 0),s++,t.resolve(e).then(function(e){c||(c=!0,r[u]=e,--s||n(r))},i)}),--s||n(r)});return o.e&&i(o.v),r.promise},race:function(e){var t=this,r=L(t),n=r.reject,i=w(function(){b(e,!1,function(e){t.resolve(e).then(r.resolve,n)})});return i.e&&n(i.v),r.promise}});var z=require("./_classof"),D={};D[require("./_wks")("toStringTag")]="z",D+""!="[object z]"&&require("./_redefine")(Object.prototype,"toString",function(){return"[object "+z(this)+"]"},!0);for(var V="persist:",Y="persist/FLUSH",B="persist/REHYDRATE",K="persist/PAUSE",W="persist/PERSIST",J="persist/PURGE",X="persist/REGISTER",Q=-1,Z=require("./es6.array.iterator"),$=require("./_object-keys"),ee=require("./_redefine"),te=require("./_global"),re=require("./_hide"),ne=require("./_iterators"),ie=require("./_wks"),oe=ie("iterator"),se=ie("toStringTag"),ue=ne.Array,ce={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},ae=$(ce),fe=0;ae.length>fe;fe++){var le,de=ae[fe],he=ce[de],pe=te[de],ye=pe&&pe.prototype;if(ye&&(ye[oe]||re(ye,oe,ue),ye[se]||re(ye,se,de),ne[de]=ue,he))for(le in Z)ye[le]||ee(ye,le,Z[le],!0)}var ve=require("./_add-to-unscopables"),_e=require("./_iter-step"),be=require("./_iterators"),me=require("./_to-iobject");module.exports=require("./_iter-define")(Array,"Array",function(e,t){this._t=me(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,r=this._i++;return e&&e.length>r?_e(0,"keys"==t?r:"values"==t?e[r]:[r,e[r]]):(this._t=void 0,_e(1))},"values"),be.Arguments=be.Array,ve("keys"),ve("values"),ve("entries");var ge=require("./_to-object"),Se=require("./_object-keys");function Ee(e,r,i,o){var s=n({},i);return e&&"object"===t(e)&&Object.keys(e).forEach(function(t){"_persist"!==t&&r[t]===i[t]&&(s[t]=e[t])}),s}function we(e){var t,r=e.blacklist||null,n=e.whitelist||null,i=e.transforms||[],o=e.throttle||0,s="".concat(void 0!==e.keyPrefix?e.keyPrefix:V).concat(e.key),u=e.storage;t=e.serialize?"function"==typeof e.serialize?e.serialize:function(e){return e}:Oe;var c=e.writeFailHandler||null,a={},f={},l=[],d=null,h=null;function p(){if(0===l.length)return d&&clearInterval(d),void(d=null);var e=l.shift(),r=i.reduce(function(t,r){return r.in(t,e,a)},a[e]);if(void 0!==r)try{f[e]=t(r)}catch(e){console.error("redux-persist/createPersistoid: error serializing state",e)}else delete f[e];0===l.length&&(Object.keys(f).forEach(function(e){void 0===a[e]&&delete f[e]}),h=u.setItem(s,t(f)).catch(v))}function y(e){return(!n||-1!==n.indexOf(e)||"_persist"===e)&&(!r||-1===r.indexOf(e))}function v(e){c&&c(e)}return{update:function(e){Object.keys(e).forEach(function(t){y(t)&&a[t]!==e[t]&&-1===l.indexOf(t)&&l.push(t)}),Object.keys(a).forEach(function(t){void 0===e[t]&&y(t)&&-1===l.indexOf(t)&&void 0!==a[t]&&l.push(t)}),null===d&&(d=setInterval(p,o)),a=e},flush:function(){for(;0!==l.length;)p();return h||Promise.resolve()}}}function Oe(e){return JSON.stringify(e)}function Pe(e){var t,r=e.transforms||[],n="".concat(void 0!==e.keyPrefix?e.keyPrefix:V).concat(e.key);return t=e.deserialize?"function"==typeof e.deserialize?e.deserialize:function(e){return e}:je,e.storage.getItem(n).then(function(e){if(e)try{var n={},i=t(e);return Object.keys(i).forEach(function(e){n[e]=r.reduceRight(function(t,r){return r.out(t,e,i)},t(i[e]))}),n}catch(e){throw e}})}function je(e){return JSON.parse(e)}function ke(e){var t=e.storage,r="".concat(void 0!==e.keyPrefix?e.keyPrefix:V).concat(e.key);return t.removeItem(r,xe)}function xe(e){0}require("./_object-sap")("keys",function(){return function(e){return Se(ge(e))}});var qe=5e3;function Te(e,t){var r=void 0!==e.version?e.version:Q,o=void 0===e.stateReconciler?Ee:e.stateReconciler,s=e.getStoredState||Pe,u=void 0!==e.timeout?e.timeout:qe,c=null,a=!1,f=!0,l=function(e){return e._persist.rehydrated&&c&&!f&&c.update(e),e};return function(d,h){var p=d||{},y=p._persist,v=i(p,["_persist"]);if(h.type===W){var _=!1,b=function(t,r){_||(h.rehydrate(e.key,t,r),_=!0)};if(u&&setTimeout(function(){!_&&b(void 0,Error('redux-persist: persist timed out for persist key "'.concat(e.key,'"')))},u),f=!1,c||(c=we(e)),y)return d;if("function"!=typeof h.rehydrate||"function"!=typeof h.register)throw 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.");return h.register(e.key),s(e).then(function(t){(e.migrate||function(e,t){return Promise.resolve(e)})(t,r).then(function(e){b(e)},function(e){b(void 0,e)})},function(e){b(void 0,e)}),n({},t(v,h),{_persist:{version:r,rehydrated:!1}})}if(h.type===J)return a=!0,h.result(ke(e)),n({},t(v,h),{_persist:y});if(h.type===Y)return h.result(c&&c.flush()),n({},t(v,h),{_persist:y});if(h.type===K)f=!0;else if(h.type===B){if(a)return n({},v,{_persist:n({},y,{rehydrated:!0})});if(h.key===e.key){var m=t(v,h),g=h.payload,S=n({},!1!==o&&void 0!==g?o(g,d,m,e):m,{_persist:n({},y,{rehydrated:!0})});return l(S)}}if(!y)return t(d,h);var E=t(v,h);return E===v?d:l(n({},E,{_persist:y}))}}var Re=function(e){var t,r=e.Symbol;return"function"==typeof r?r.observable?t=r.observable:(t=r("observable"),r.observable=t):t="@@observable",t}("undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof module?module:Function("return this")()),Ie=function(){return Math.random().toString(36).substring(7).split("").join(".")},Le={INIT:"@@redux/INIT"+Ie(),REPLACE:"@@redux/REPLACE"+Ie(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+Ie()}};function Ae(e,t,r){var n;if("function"==typeof t&&"function"==typeof r||"function"==typeof r&&"function"==typeof arguments[3])throw Error("It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function");if("function"==typeof t&&void 0===r&&(r=t,t=void 0),void 0!==r){if("function"!=typeof r)throw Error("Expected the enhancer to be a function.");return r(Ae)(e,t)}if("function"!=typeof e)throw Error("Expected the reducer to be a function.");var i=e,o=t,s=[],u=s,c=!1;function a(){u===s&&(u=s.slice())}function f(){if(c)throw Error("You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.");return o}function l(e){if("function"!=typeof e)throw Error("Expected the listener to be a function.");if(c)throw Error("You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api-reference/store#subscribe(listener) for more details.");var t=!0;return a(),u.push(e),function(){if(t){if(c)throw Error("You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api-reference/store#subscribe(listener) for more details.");t=!1,a();var r=u.indexOf(e);u.splice(r,1)}}}function d(e){if(!function(e){if("object"!=typeof e||null===e)return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}(e))throw Error("Actions must be plain objects. Use custom middleware for async actions.");if(void 0===e.type)throw Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');if(c)throw Error("Reducers may not dispatch actions.");try{c=!0,o=i(o,e)}finally{c=!1}for(var t=s=u,r=0;t.length>r;r++){(0,t[r])()}return e}return d({type:Le.INIT}),(n={dispatch:d,subscribe:l,getState:f,replaceReducer:function(e){if("function"!=typeof e)throw Error("Expected the nextReducer to be a function.");i=e,d({type:Le.REPLACE})}})[Re]=function(){var e,t=l;return(e={subscribe:function(e){if("object"!=typeof e||null===e)throw new TypeError("Expected the observer to be an object.");function r(){e.next&&e.next(f())}return r(),{unsubscribe:t(r)}}})[Re]=function(){return this},e},n}function Ne(e,t){var r=t&&t.type;return"Given "+(r&&'action "'+r+'"'||"an action")+', reducer "'+e+'" returned undefined. To ignore an action, you must explicitly return the previous state. If you want this reducer to hold no value, you can return null instead of undefined.'}function Ce(e){for(var t=Object.keys(e),r={},n=0;t.length>n;n++){var i=t[n];"function"==typeof e[i]&&(r[i]=e[i])}var o,s=Object.keys(r);try{!function(e){Object.keys(e).forEach(function(t){var r=e[t];if(void 0===r(void 0,{type:Le.INIT}))throw Error('Reducer "'+t+"\" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.");if(void 0===r(void 0,{type:Le.PROBE_UNKNOWN_ACTION()}))throw Error('Reducer "'+t+"\" returned undefined when probed with a random type. Don't try to handle "+Le.INIT+' or other actions in "redux/*" namespace. They are considered private. Instead, you must return the current state for any unknown actions, unless it is undefined, in which case you must return the initial state, regardless of the action type. The initial state may not be undefined, but can be null.')})}(r)}catch(e){o=e}return function(e,t){if(void 0===e&&(e={}),o)throw o;for(var n=!1,i={},u=0;s.length>u;u++){var c=s[u],a=e[c],f=(0,r[c])(a,t);if(void 0===f){var l=Ne(c,t);throw Error(l)}i[c]=f,n=n||f!==a}return n?i:e}}function Fe(e,r,i,o){var s=n({},i);return e&&"object"===t(e)&&Object.keys(e).forEach(function(o){var u;"_persist"!==o&&(r[o]===i[o]&&(s[o]=null===(u=i[o])||Array.isArray(u)||"object"!==t(u)?e[o]:n({},s[o],e[o])))}),s}var Me=require("./_string-at")(!0);require("./_iter-define")(String,"String",function(e){this._t=e+"",this._i=0},function(){var e,t=this._t,r=this._i;return t.length>r?(e=Me(t,r),this._i+=e.length,{value:e,done:!1}):{value:void 0,done:!0}});var Ge={registry:[],bootstrapped:!1},Ue=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Ge,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case X:return n({},e,{registry:[].concat(o(e.registry),[t.key])});case B:var r=e.registry.indexOf(t.key),i=o(e.registry);return i.splice(r,1),n({},e,{registry:i,bootstrapped:0===i.length});default:return e}};var He=require("./_export"),ze=require("./_a-function"),De=require("./_to-object"),Ve=require("./_fails"),Ye=[].sort,Be=[1,2,3];He(He.P+He.F*(Ve(function(){Be.sort(void 0)})||!Ve(function(){Be.sort(null)})||!require("./_strict-method")(Ye)),"Array",{sort:function(e){return void 0===e?Ye.call(De(this)):Ye.call(De(this),ze(e))}}),e.persistReducer=Te,e.persistCombineReducers=function(e,t){return e.stateReconciler=void 0===e.stateReconciler?Fe:e.stateReconciler,Te(e,Ce(t))},e.persistStore=function(e,t,r){var i=r||!1,o=Ae(Ue,Ge,t?t.enhancer:void 0),s=function(e){o.dispatch({type:X,key:e})},u=function(t,r,n){var s={type:B,payload:r,err:n,key:t};e.dispatch(s),o.dispatch(s),i&&c.getState().bootstrapped&&(i(),i=!1)},c=n({},o,{purge:function(){var t=[];return e.dispatch({type:J,result:function(e){t.push(e)}}),Promise.all(t)},flush:function(){var t=[];return e.dispatch({type:Y,result:function(e){t.push(e)}}),Promise.all(t)},pause:function(){e.dispatch({type:K})},persist:function(){e.dispatch({type:W,register:s,rehydrate:u})}});return c.persist(),c},e.createMigrate=function(e,t){return function(t,r){if(!t)return Promise.resolve(void 0);var n=t._persist&&void 0!==t._persist.version?t._persist.version:Q;if(n===r)return Promise.resolve(t);if(n>r)return Promise.resolve(t);var i=Object.keys(e).map(function(e){return parseInt(e)}).filter(function(e){return r>=e&&e>n}).sort(function(e,t){return e-t});try{var o=i.reduce(function(t,r){return e[r](t)},t);return Promise.resolve(o)}catch(e){return Promise.reject(e)}}},e.createTransform=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=r.whitelist||null,i=r.blacklist||null;function o(e){return!(!n||-1!==n.indexOf(e))||!(!i||-1===i.indexOf(e))}return{in:function(t,r,n){return!o(r)&&e?e(t,r,n):t},out:function(e,r,n){return!o(r)&&t?t(e,r,n):e}}},e.getStoredState=Pe,e.createPersistoid=we,e.purgeStoredState=ke,e.KEY_PREFIX=V,e.FLUSH=Y,e.REHYDRATE=B,e.PAUSE=K,e.PERSIST=W,e.PURGE=J,e.REGISTER=X,e.DEFAULT_VERSION=Q,Object.defineProperty(e,"__esModule",{value:!0})});
//# sourceMappingURL=redux-persist.min.js.map

@@ -0,3 +1,8 @@

import "core-js/modules/web.dom.iterable";
import "core-js/modules/es6.array.iterator";
import "core-js/modules/es6.object.keys";
import "core-js/modules/es6.array.sort";
import "core-js/modules/es6.promise";
import "core-js/modules/es6.object.to-string";
import { DEFAULT_VERSION } from './constants';
export default function createMigrate(migrations, config) {

@@ -14,2 +19,3 @@ var _ref = config || {},

var inboundVersion = state._persist && state._persist.version !== undefined ? state._persist.version : DEFAULT_VERSION;
if (inboundVersion === currentVersion) {

@@ -19,2 +25,3 @@ if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist: versions match, noop migration');

}
if (inboundVersion > currentVersion) {

@@ -32,4 +39,4 @@ if (process.env.NODE_ENV !== 'production') console.error('redux-persist: downgrading version is not supported');

});
if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist: migrationKeys', migrationKeys);
if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist: migrationKeys', migrationKeys);
try {

@@ -36,0 +43,0 @@ var migratedState = migrationKeys.reduce(function (state, versionKey) {

@@ -0,5 +1,8 @@

import "core-js/modules/es6.promise";
import "core-js/modules/web.dom.iterable";
import "core-js/modules/es6.array.iterator";
import "core-js/modules/es6.object.to-string";
import "core-js/modules/es6.object.keys";
import { KEY_PREFIX, REHYDRATE } from './constants';
// @TODO remove once flow < 0.63 support is no longer required.
export default function createPersistoid(config) {

@@ -11,9 +14,18 @@ // defaults

var throttle = config.throttle || 0;
var storageKey = '' + (config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX) + config.key;
var storageKey = "".concat(config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX).concat(config.key);
var storage = config.storage;
var serialize = config.serialize === false ? function (x) {
return x;
} : defaultSerialize;
var serialize;
// initialize stateful values
if (!config.serialize) {
serialize = defaultSerialize;
} else if (typeof config.serialize === 'function') {
serialize = config.serialize;
} else {
serialize = function serialize(x) {
return x;
};
}
var writeFailHandler = config.writeFailHandler || null; // initialize stateful values
var lastState = {};

@@ -29,16 +41,17 @@ var stagedState = {};

if (!passWhitelistBlacklist(key)) return; // is keyspace ignored? noop
if (lastState[key] === state[key]) return; // value unchanged? noop
if (keysToProcess.indexOf(key) !== -1) return; // is key already queued? noop
keysToProcess.push(key); // add key to queue
});
}); //if any key is missing in the new state which was present in the lastState,
//add it for processing too
//if any key is missing in the new state which was present in the lastState,
//add it for processing too
Object.keys(lastState).forEach(function (key) {
if (state[key] === undefined) {
if (state[key] === undefined && passWhitelistBlacklist(key) && keysToProcess.indexOf(key) === -1 && lastState[key] !== undefined) {
keysToProcess.push(key);
}
});
}); // start the time iterator if not running (read: throttle)
// start the time iterator if not running (read: throttle)
if (timeIterator === null) {

@@ -86,3 +99,2 @@ timeIterator = setInterval(processNextKey, throttle);

});
writePromise = storage.setItem(storageKey, serialize(stagedState)).catch(onWriteFail);

@@ -99,2 +111,4 @@ }

// @TODO add fail handlers (typically storage full)
if (writeFailHandler) writeFailHandler(err);
if (err && process.env.NODE_ENV !== 'production') {

@@ -109,6 +123,7 @@ console.error('Error storing data', err);

}
return writePromise || Promise.resolve();
};
}; // return `persistoid`
// return `persistoid`
return {

@@ -118,7 +133,6 @@ update: update,

};
}
} // @NOTE in the future this may be exposed via config
// @NOTE in the future this may be exposed via config
function defaultSerialize(data) {
return JSON.stringify(data);
}

@@ -1,10 +0,5 @@

export default function createTransform(
// @NOTE inbound: transform state coming from redux on its way to being serialized and stored
inbound,
// @NOTE outbound: transform state coming from storage, on its way to be rehydrated into redux
export default function createTransform( // @NOTE inbound: transform state coming from redux on its way to being serialized and stored
inbound, // @NOTE outbound: transform state coming from storage, on its way to be rehydrated into redux
outbound) {
var config = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
var whitelist = config.whitelist || null;

@@ -11,0 +6,0 @@ var blacklist = config.blacklist || null;

@@ -1,13 +0,23 @@

import "core-js/modules/web.dom.iterable";
import "core-js/modules/es6.array.iterator";
import "core-js/modules/es6.object.to-string";
import "core-js/modules/es6.object.keys";
import { KEY_PREFIX } from './constants';
export default function getStoredState(config) {
var transforms = config.transforms || [];
var storageKey = '' + (config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX) + config.key;
var storageKey = "".concat(config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX).concat(config.key);
var storage = config.storage;
var debug = config.debug;
var deserialize = config.serialize === false ? function (x) {
return x;
} : defaultDeserialize;
var deserialize;
if (!config.deserialize) {
deserialize = defaultDeserialize;
} else if (typeof config.deserialize === 'function') {
deserialize = config.deserialize;
} else {
deserialize = function deserialize(x) {
return x;
};
}
return storage.getItem(storageKey).then(function (serialized) {

@@ -25,3 +35,3 @@ if (!serialized) return undefined;else {

} catch (err) {
if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist/getStoredState: Error restoring data ' + serialized, err);
if (process.env.NODE_ENV !== 'production' && debug) console.log("redux-persist/getStoredState: Error restoring data ".concat(serialized), err);
throw err;

@@ -28,0 +38,0 @@ }

@@ -9,3 +9,2 @@ export { default as persistReducer } from './persistReducer';

export { default as purgeStoredState } from './purgeStoredState';
export * from './constants';

@@ -1,7 +0,16 @@

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; };
import "core-js/modules/es6.object.keys";
import "core-js/modules/es7.symbol.async-iterator";
import "core-js/modules/es6.symbol";
import "core-js/modules/web.dom.iterable";
import "core-js/modules/es6.array.iterator";
import "core-js/modules/es6.promise";
import "core-js/modules/es6.object.to-string";
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; };
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
import getStoredStateV5 from '../getStoredState';
export default function getStoredState(v4Config) {

@@ -14,7 +23,6 @@ return function (v5Config) {

}
var KEY_PREFIX = 'reduxPersist:';
function hasLocalStorage() {
if ((typeof self === 'undefined' ? 'undefined' : _typeof(self)) !== 'object' || !('localStorage' in self)) {
if ((typeof self === "undefined" ? "undefined" : _typeof(self)) !== 'object' || !('localStorage' in self)) {
return false;

@@ -24,11 +32,12 @@ }

try {
var _storage = self.localStorage;
var testKey = 'redux-persist localStorage test';
_storage.setItem(testKey, 'test');
_storage.getItem(testKey);
_storage.removeItem(testKey);
var storage = self.localStorage;
var testKey = "redux-persist localStorage test";
storage.setItem(testKey, 'test');
storage.getItem(testKey);
storage.removeItem(testKey);
} catch (e) {
if (process.env.NODE_ENV !== 'production') console.warn('redux-persist localStorage test failed, persistence will be disabled.');
if (process.env.NODE_ENV !== 'production') console.warn("redux-persist localStorage test failed, persistence will be disabled.");
return false;
}
return true;

@@ -38,4 +47,6 @@ }

var noop = function noop() {
/* noop */return null;
/* noop */
return null;
};
var noStorage = {

@@ -47,2 +58,3 @@ getItem: noop,

};
var createAsyncLocalStorage = function createAsyncLocalStorage() {

@@ -55,5 +67,7 @@ if (!hasLocalStorage()) return noStorage;

var keys = [];
for (var i = 0; i < localStorage.length; i++) {
keys.push(localStorage.key(i));
}
cb(null, keys);

@@ -102,10 +116,9 @@ } catch (e) {

var transforms = v4Config.transforms || [];
var keyPrefix = v4Config.keyPrefix !== undefined ? v4Config.keyPrefix : KEY_PREFIX;
var keyPrefix = v4Config.keyPrefix !== undefined ? v4Config.keyPrefix : KEY_PREFIX; // fallback getAllKeys to `keys` if present (LocalForage compatability)
// fallback getAllKeys to `keys` if present (LocalForage compatability)
if (storage.keys && !storage.getAllKeys) storage = _extends({}, storage, { getAllKeys: storage.keys });
if (storage.keys && !storage.getAllKeys) storage = _objectSpread({}, storage, {
getAllKeys: storage.keys
});
var restoredState = {};
var completionCount = 0;
storage.getAllKeys(function (err) {

@@ -125,3 +138,2 @@ var allKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];

var keysToRestore = persistKeys.filter(passWhitelistBlacklist);
var restoreCount = keysToRestore.length;

@@ -160,3 +172,3 @@ if (restoreCount === 0) resolve(undefined);

function createStorageKey(key) {
return '' + keyPrefix + key;
return "".concat(keyPrefix).concat(key);
}

@@ -163,0 +175,0 @@ });

@@ -1,30 +0,55 @@

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; }; }();
import "core-js/modules/es7.symbol.async-iterator";
import "core-js/modules/es6.symbol";
import "core-js/modules/es6.object.set-prototype-of";
import "core-js/modules/es6.promise";
import "core-js/modules/es6.object.to-string";
import "core-js/modules/es7.promise.finally";
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _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; }
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); } }
function _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; }
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
import React, { PureComponent } from 'react'; // eslint-disable-line import/no-unresolved
// eslint-disable-line import/no-unresolved
export var PersistGate = function (_PureComponent) {
export var PersistGate =
/*#__PURE__*/
function (_PureComponent) {
_inherits(PersistGate, _PureComponent);
function PersistGate() {
var _ref;
var _getPrototypeOf2;
var _temp, _this, _ret;
var _this;
_classCallCheck(this, PersistGate);
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = PersistGate.__proto__ || Object.getPrototypeOf(PersistGate)).call.apply(_ref, [this].concat(args))), _this), _this.state = {
_this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(PersistGate)).call.apply(_getPrototypeOf2, [this].concat(args)));
_defineProperty(_assertThisInitialized(_this), "state", {
bootstrapped: false
}, _this.handlePersistorState = function () {
});
_defineProperty(_assertThisInitialized(_this), "_unsubscribe", void 0);
_defineProperty(_assertThisInitialized(_this), "handlePersistorState", function () {
var persistor = _this.props.persistor;

@@ -37,17 +62,22 @@

if (_this.props.onBeforeLift) {
Promise.resolve(_this.props.onBeforeLift()).then(function () {
return _this.setState({ bootstrapped: true });
}).catch(function () {
return _this.setState({ bootstrapped: true });
Promise.resolve(_this.props.onBeforeLift()).finally(function () {
return _this.setState({
bootstrapped: true
});
});
} else {
_this.setState({ bootstrapped: true });
_this.setState({
bootstrapped: true
});
}
_this._unsubscribe && _this._unsubscribe();
}
}, _temp), _possibleConstructorReturn(_this, _ret);
});
return _this;
}
_createClass(PersistGate, [{
key: 'componentDidMount',
key: "componentDidMount",
value: function componentDidMount() {

@@ -58,3 +88,3 @@ this._unsubscribe = this.props.persistor.subscribe(this.handlePersistorState);

}, {
key: 'componentWillUnmount',
key: "componentWillUnmount",
value: function componentWillUnmount() {

@@ -64,3 +94,3 @@ this._unsubscribe && this._unsubscribe();

}, {
key: 'render',
key: "render",
value: function render() {

@@ -70,2 +100,3 @@ if (process.env.NODE_ENV !== 'production') {

}
if (typeof this.props.children === 'function') {

@@ -81,4 +112,6 @@ return this.props.children(this.state.bootstrapped);

}(PureComponent);
PersistGate.defaultProps = {
_defineProperty(PersistGate, "defaultProps", {
children: null,
loading: null
};
});
import { combineReducers } from 'redux';
import persistReducer from './persistReducer';
import autoMergeLevel2 from './stateReconciler/autoMergeLevel2';
// combineReducers + persistReducer with stateReconciler defaulted to autoMergeLevel2

@@ -6,0 +5,0 @@ export default function persistCombineReducers(config, reducers) {

@@ -1,7 +0,17 @@

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; };
import "core-js/modules/es6.symbol";
import "core-js/modules/web.dom.iterable";
import "core-js/modules/es6.array.iterator";
import "core-js/modules/es6.object.keys";
import "core-js/modules/es6.promise";
import "core-js/modules/es6.object.to-string";
function _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; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
import { FLUSH, PAUSE, PERSIST, PURGE, REHYDRATE, DEFAULT_VERSION } from './constants';
import autoMergeLevel1 from './stateReconciler/autoMergeLevel1';

@@ -11,3 +21,2 @@ import createPersistoid from './createPersistoid';

import purgeStoredState from './purgeStoredState';
var DEFAULT_TIMEOUT = 5000;

@@ -19,2 +28,3 @@ /*

*/
export default function persistReducer(config, baseReducer) {

@@ -35,2 +45,3 @@ if (process.env.NODE_ENV !== 'production') {

var _paused = true;
var conditionalUpdate = function conditionalUpdate(state) {

@@ -45,4 +56,5 @@ // update the persistoid only if we are rehydrated and not paused

_persist = _ref._persist,
rest = _objectWithoutProperties(_ref, ['_persist']);
rest = _objectWithoutProperties(_ref, ["_persist"]); // $FlowIgnore need to update State type
var restState = rest;

@@ -52,7 +64,7 @@

var _sealed = false;
var _rehydrate = function _rehydrate(payload, err) {
// dev warning if we are already sealed
if (process.env.NODE_ENV !== 'production' && _sealed) console.error('redux-persist: rehydrate for "' + config.key + '" called after timeout.', payload, err);
if (process.env.NODE_ENV !== 'production' && _sealed) console.error("redux-persist: rehydrate for \"".concat(config.key, "\" called after timeout."), payload, err); // only rehydrate if we are not already sealed
// only rehydrate if we are not already sealed
if (!_sealed) {

@@ -63,18 +75,14 @@ action.rehydrate(config.key, payload, err);

};
timeout && setTimeout(function () {
!_sealed && _rehydrate(undefined, new Error('redux-persist: persist timed out for persist key "' + config.key + '"'));
}, timeout);
!_sealed && _rehydrate(undefined, new Error("redux-persist: persist timed out for persist key \"".concat(config.key, "\"")));
}, timeout); // @NOTE PERSIST resumes if paused.
// @NOTE PERSIST resumes if paused.
_paused = false;
_paused = false; // @NOTE only ever create persistoid once, ensure we call it at least once, even if _persist has already been set
// @NOTE only ever create persistoid once, ensure we call it at least once, even if _persist has already been set
if (!_persistoid) _persistoid = createPersistoid(config);
if (!_persistoid) _persistoid = createPersistoid(config); // @NOTE PERSIST can be called multiple times, noop after the first
// @NOTE PERSIST can be called multiple times, noop after the first
if (_persist) return state;
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.');
action.register(config.key);
getStoredState(config).then(function (restoredState) {

@@ -84,2 +92,3 @@ var migrate = config.migrate || function (s, v) {

};
migrate(restoredState, version).then(function (migratedState) {

@@ -89,2 +98,3 @@ _rehydrate(migratedState);

if (process.env.NODE_ENV !== 'production' && migrateErr) console.error('redux-persist: migration error', migrateErr);
_rehydrate(undefined, migrateErr);

@@ -95,5 +105,7 @@ });

});
return _extends({}, baseReducer(restState, action), {
_persist: { version: version, rehydrated: false }
return _objectSpread({}, baseReducer(restState, action), {
_persist: {
version: version,
rehydrated: false
}
});

@@ -103,3 +115,3 @@ } else if (action.type === PURGE) {

action.result(purgeStoredState(config));
return _extends({}, baseReducer(restState, action), {
return _objectSpread({}, baseReducer(restState, action), {
_persist: _persist

@@ -109,3 +121,3 @@ });

action.result(_persistoid && _persistoid.flush());
return _extends({}, baseReducer(restState, action), {
return _objectSpread({}, baseReducer(restState, action), {
_persist: _persist

@@ -117,30 +129,35 @@ });

// noop on restState if purging
if (_purge) return _extends({}, restState, {
_persist: _extends({}, _persist, { rehydrated: true })
if (_purge) return _objectSpread({}, restState, {
_persist: _objectSpread({}, _persist, {
rehydrated: true
}) // @NOTE if key does not match, will continue to default else below
// @NOTE if key does not match, will continue to default else below
});if (action.key === config.key) {
});
if (action.key === config.key) {
var reducedState = baseReducer(restState, action);
var inboundState = action.payload;
// only reconcile state if stateReconciler and inboundState are both defined
var inboundState = action.payload; // only reconcile state if stateReconciler and inboundState are both defined
var reconciledRest = stateReconciler !== false && inboundState !== undefined ? stateReconciler(inboundState, state, reducedState, config) : reducedState;
var _newState = _extends({}, reconciledRest, {
_persist: _extends({}, _persist, { rehydrated: true })
var _newState = _objectSpread({}, reconciledRest, {
_persist: _objectSpread({}, _persist, {
rehydrated: true
})
});
return conditionalUpdate(_newState);
}
}
} // if we have not already handled PERSIST, straight passthrough
// if we have not already handled PERSIST, straight passthrough
if (!_persist) return baseReducer(state, action);
// run base reducer:
if (!_persist) return baseReducer(state, action); // run base reducer:
// is state modified ? return original : return updated
var newState = baseReducer(restState, action);
if (newState === restState) return state;else {
newState._persist = _persist;
return conditionalUpdate(newState);
}
if (newState === restState) return state;
return conditionalUpdate(_objectSpread({}, newState, {
_persist: _persist
}));
};
}

@@ -1,10 +0,27 @@

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; };
import "core-js/modules/es6.array.from";
import "core-js/modules/es6.regexp.to-string";
import "core-js/modules/es7.symbol.async-iterator";
import "core-js/modules/es6.symbol";
import "core-js/modules/es6.object.keys";
import "core-js/modules/es6.promise";
import "core-js/modules/web.dom.iterable";
import "core-js/modules/es6.array.iterator";
import "core-js/modules/es6.object.to-string";
import "core-js/modules/es6.string.iterator";
function _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); } }
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
import { createStore } from 'redux';
import persistReducer from './persistReducer';
import { FLUSH, PAUSE, PERSIST, PURGE, REGISTER, REHYDRATE } from './constants';
var initialState = {

@@ -17,12 +34,21 @@ registry: [],

var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
var action = arguments[1];
var action = arguments.length > 1 ? arguments[1] : undefined;
switch (action.type) {
case REGISTER:
return _extends({}, state, { registry: [].concat(_toConsumableArray(state.registry), [action.key]) });
return _objectSpread({}, state, {
registry: [].concat(_toConsumableArray(state.registry), [action.key])
});
case REHYDRATE:
var firstIndex = state.registry.indexOf(action.key);
var registry = [].concat(_toConsumableArray(state.registry));
var registry = _toConsumableArray(state.registry);
registry.splice(firstIndex, 1);
return _extends({}, state, { registry: registry, bootstrapped: registry.length === 0 });
return _objectSpread({}, state, {
registry: registry,
bootstrapped: registry.length === 0
});
default:

@@ -39,8 +65,10 @@ return state;

bannedKeys.forEach(function (k) {
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.');
if (!!optionsToTest[k]) console.error("redux-persist: invalid option passed to persistStore: \"".concat(k, "\". You may be incorrectly passing persistConfig into persistStore, whereas it should be passed into persistReducer."));
});
}
var boostrappedCb = cb || false;
var _pStore = createStore(persistorReducer, initialState, options ? options.enhancer : undefined);
var register = function register(key) {

@@ -58,6 +86,9 @@ _pStore.dispatch({

err: err,
key: key
// dispatch to `store` to rehydrate and `persistor` to track result
};store.dispatch(rehydrateAction);
key: key // dispatch to `store` to rehydrate and `persistor` to track result
};
store.dispatch(rehydrateAction);
_pStore.dispatch(rehydrateAction);
if (boostrappedCb && persistor.getState().bootstrapped) {

@@ -69,3 +100,3 @@ boostrappedCb();

var persistor = _extends({}, _pStore, {
var persistor = _objectSpread({}, _pStore, {
purge: function purge() {

@@ -97,3 +128,7 @@ var results = [];

persist: function persist() {
store.dispatch({ type: PERSIST, register: register, rehydrate: rehydrate });
store.dispatch({
type: PERSIST,
register: register,
rehydrate: rehydrate
});
}

@@ -103,4 +138,3 @@ });

persistor.persist();
return persistor;
}

@@ -1,8 +0,5 @@

import { KEY_PREFIX } from './constants';
export default function purgeStoredState(config) {
var storage = config.storage;
var storageKey = '' + (config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX) + config.key;
var storageKey = "".concat(config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX).concat(config.key);
return storage.removeItem(storageKey, warnIfRemoveError);

@@ -9,0 +6,0 @@ }

@@ -1,20 +0,36 @@

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; };
import "core-js/modules/es7.symbol.async-iterator";
import "core-js/modules/es6.symbol";
import "core-js/modules/web.dom.iterable";
import "core-js/modules/es6.array.iterator";
import "core-js/modules/es6.object.to-string";
import "core-js/modules/es6.object.keys";
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; };
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
/*
autoMergeLevel1:
- merges 1 level of substate
- skips substate if already modified
*/
export default function autoMergeLevel1(inboundState, originalState, reducedState, _ref) {
var debug = _ref.debug;
var newState = _extends({}, reducedState);
// only rehydrate if inboundState exists and is an object
if (inboundState && (typeof inboundState === 'undefined' ? 'undefined' : _typeof(inboundState)) === 'object') {
var newState = _objectSpread({}, reducedState); // only rehydrate if inboundState exists and is an object
if (inboundState && _typeof(inboundState) === 'object') {
Object.keys(inboundState).forEach(function (key) {
// ignore _persist data
if (key === '_persist') return;
// if reducer modifies substate, skip auto rehydration
if (key === '_persist') return; // if reducer modifies substate, skip auto rehydration
if (originalState[key] !== reducedState[key]) {
if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist/stateReconciler: sub state for key `%s` modified, skipping.', key);
return;
}
// otherwise hard set the new value
} // otherwise hard set the new value
newState[key] = inboundState[key];

@@ -24,11 +40,4 @@ });

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(', ') + '\'');
if (process.env.NODE_ENV !== 'production' && debug && inboundState && _typeof(inboundState) === 'object') console.log("redux-persist/stateReconciler: rehydrated keys '".concat(Object.keys(inboundState).join(', '), "'"));
return newState;
}
/*
autoMergeLevel1:
- merges 1 level of substate
- skips substate if already modified
*/
}

@@ -1,15 +0,31 @@

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; };
import "core-js/modules/es7.symbol.async-iterator";
import "core-js/modules/es6.symbol";
import "core-js/modules/web.dom.iterable";
import "core-js/modules/es6.array.iterator";
import "core-js/modules/es6.object.to-string";
import "core-js/modules/es6.object.keys";
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; };
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
/*
autoMergeLevel2:
- merges 2 level of substate
- skips substate if already modified
- this is essentially redux-perist v4 behavior
*/
export default function autoMergeLevel2(inboundState, originalState, reducedState, _ref) {
var debug = _ref.debug;
var newState = _extends({}, reducedState);
// only rehydrate if inboundState exists and is an object
if (inboundState && (typeof inboundState === 'undefined' ? 'undefined' : _typeof(inboundState)) === 'object') {
var newState = _objectSpread({}, reducedState); // only rehydrate if inboundState exists and is an object
if (inboundState && _typeof(inboundState) === 'object') {
Object.keys(inboundState).forEach(function (key) {
// ignore _persist data
if (key === '_persist') return;
// if reducer modifies substate, skip auto rehydration
if (key === '_persist') return; // if reducer modifies substate, skip auto rehydration
if (originalState[key] !== reducedState[key]) {

@@ -19,8 +35,10 @@ if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist/stateReconciler: sub state for key `%s` modified, skipping.', key);

}
if (isPlainEnoughObject(reducedState[key])) {
// if object is plain enough shallow merge the new values (hence "Level2")
newState[key] = _extends({}, newState[key], inboundState[key]);
newState[key] = _objectSpread({}, newState[key], inboundState[key]);
return;
}
// otherwise hard set
} // otherwise hard set
newState[key] = inboundState[key];

@@ -30,16 +48,8 @@ });

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(', ') + '\'');
if (process.env.NODE_ENV !== 'production' && debug && inboundState && _typeof(inboundState) === 'object') console.log("redux-persist/stateReconciler: rehydrated keys '".concat(Object.keys(inboundState).join(', '), "'"));
return newState;
}
/*
autoMergeLevel2:
- merges 2 level of substate
- skips substate if already modified
- this is essentially redux-perist v4 behavior
*/
function isPlainEnoughObject(o) {
return o !== null && !Array.isArray(o) && (typeof o === 'undefined' ? 'undefined' : _typeof(o)) === 'object';
return o !== null && !Array.isArray(o) && _typeof(o) === 'object';
}

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

/*

@@ -7,5 +5,4 @@ hardSet:

*/
export default function hardSet(inboundState) {
return inboundState;
}

@@ -0,3 +1,4 @@

import "core-js/modules/es6.promise";
import "core-js/modules/es6.object.to-string";
import getStorage from './getStorage';
export default function createWebStorage(type) {

@@ -4,0 +5,0 @@ var storage = getStorage(type);

@@ -1,3 +0,6 @@

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; };
import "core-js/modules/es7.symbol.async-iterator";
import "core-js/modules/es6.symbol";
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
function noop() {}

@@ -12,3 +15,3 @@

function hasStorage(storageType) {
if ((typeof self === 'undefined' ? 'undefined' : _typeof(self)) !== 'object' || !(storageType in self)) {
if ((typeof self === "undefined" ? "undefined" : _typeof(self)) !== 'object' || !(storageType in self)) {
return false;

@@ -19,3 +22,3 @@ }

var storage = self[storageType];
var testKey = 'redux-persist ' + storageType + ' test';
var testKey = "redux-persist ".concat(storageType, " test");
storage.setItem(testKey, 'test');

@@ -25,5 +28,6 @@ storage.getItem(testKey);

} catch (e) {
if (process.env.NODE_ENV !== 'production') console.warn('redux-persist ' + storageType + ' test failed, persistence will be disabled.');
if (process.env.NODE_ENV !== 'production') console.warn("redux-persist ".concat(storageType, " test failed, persistence will be disabled."));
return false;
}
return true;

@@ -33,9 +37,10 @@ }

export default function getStorage(type) {
var storageType = type + 'Storage';
var storageType = "".concat(type, "Storage");
if (hasStorage(storageType)) return self[storageType];else {
if (process.env.NODE_ENV !== 'production') {
console.error('redux-persist failed to create sync storage. falling back to memory storage.');
console.error("redux-persist failed to create sync storage. falling back to noop storage.");
}
return noopStorage;
}
}
import createWebStorage from './createWebStorage';
export default createWebStorage('local');
import createWebStorage from './createWebStorage';
export default createWebStorage('session');

@@ -1,11 +0,20 @@

'use strict';
"use strict";
exports.__esModule = true;
var KEY_PREFIX = exports.KEY_PREFIX = 'persist:';
var FLUSH = exports.FLUSH = 'persist/FLUSH';
var REHYDRATE = exports.REHYDRATE = 'persist/REHYDRATE';
var PAUSE = exports.PAUSE = 'persist/PAUSE';
var PERSIST = exports.PERSIST = 'persist/PERSIST';
var PURGE = exports.PURGE = 'persist/PURGE';
var REGISTER = exports.REGISTER = 'persist/REGISTER';
var DEFAULT_VERSION = exports.DEFAULT_VERSION = -1;
exports.DEFAULT_VERSION = exports.REGISTER = exports.PURGE = exports.PERSIST = exports.PAUSE = exports.REHYDRATE = exports.FLUSH = exports.KEY_PREFIX = void 0;
var KEY_PREFIX = 'persist:';
exports.KEY_PREFIX = KEY_PREFIX;
var FLUSH = 'persist/FLUSH';
exports.FLUSH = FLUSH;
var REHYDRATE = 'persist/REHYDRATE';
exports.REHYDRATE = REHYDRATE;
var PAUSE = 'persist/PAUSE';
exports.PAUSE = PAUSE;
var PERSIST = 'persist/PERSIST';
exports.PERSIST = PERSIST;
var PURGE = 'persist/PURGE';
exports.PURGE = PURGE;
var REGISTER = 'persist/REGISTER';
exports.REGISTER = REGISTER;
var DEFAULT_VERSION = -1;
exports.DEFAULT_VERSION = DEFAULT_VERSION;

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

'use strict';
"use strict";

@@ -6,4 +6,16 @@ exports.__esModule = true;

var _constants = require('./constants');
require("core-js/modules/web.dom.iterable");
require("core-js/modules/es6.array.iterator");
require("core-js/modules/es6.object.keys");
require("core-js/modules/es6.array.sort");
require("core-js/modules/es6.promise");
require("core-js/modules/es6.object.to-string");
var _constants = require("./constants");
function createMigrate(migrations, config) {

@@ -20,2 +32,3 @@ var _ref = config || {},

var inboundVersion = state._persist && state._persist.version !== undefined ? state._persist.version : _constants.DEFAULT_VERSION;
if (inboundVersion === currentVersion) {

@@ -25,2 +38,3 @@ if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist: versions match, noop migration');

}
if (inboundVersion > currentVersion) {

@@ -38,4 +52,4 @@ if (process.env.NODE_ENV !== 'production') console.error('redux-persist: downgrading version is not supported');

});
if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist: migrationKeys', migrationKeys);
if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist: migrationKeys', migrationKeys);
try {

@@ -42,0 +56,0 @@ var migratedState = migrationKeys.reduce(function (state, versionKey) {

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

'use strict';
"use strict";

@@ -6,6 +6,15 @@ exports.__esModule = true;

var _constants = require('./constants');
require("core-js/modules/es6.promise");
require("core-js/modules/web.dom.iterable");
require("core-js/modules/es6.array.iterator");
require("core-js/modules/es6.object.to-string");
require("core-js/modules/es6.object.keys");
var _constants = require("./constants");
// @TODO remove once flow < 0.63 support is no longer required.
function createPersistoid(config) {

@@ -17,9 +26,18 @@ // defaults

var throttle = config.throttle || 0;
var storageKey = '' + (config.keyPrefix !== undefined ? config.keyPrefix : _constants.KEY_PREFIX) + config.key;
var storageKey = "".concat(config.keyPrefix !== undefined ? config.keyPrefix : _constants.KEY_PREFIX).concat(config.key);
var storage = config.storage;
var serialize = config.serialize === false ? function (x) {
return x;
} : defaultSerialize;
var serialize;
// initialize stateful values
if (!config.serialize) {
serialize = defaultSerialize;
} else if (typeof config.serialize === 'function') {
serialize = config.serialize;
} else {
serialize = function serialize(x) {
return x;
};
}
var writeFailHandler = config.writeFailHandler || null; // initialize stateful values
var lastState = {};

@@ -35,16 +53,17 @@ var stagedState = {};

if (!passWhitelistBlacklist(key)) return; // is keyspace ignored? noop
if (lastState[key] === state[key]) return; // value unchanged? noop
if (keysToProcess.indexOf(key) !== -1) return; // is key already queued? noop
keysToProcess.push(key); // add key to queue
});
}); //if any key is missing in the new state which was present in the lastState,
//add it for processing too
//if any key is missing in the new state which was present in the lastState,
//add it for processing too
Object.keys(lastState).forEach(function (key) {
if (state[key] === undefined) {
if (state[key] === undefined && passWhitelistBlacklist(key) && keysToProcess.indexOf(key) === -1 && lastState[key] !== undefined) {
keysToProcess.push(key);
}
});
}); // start the time iterator if not running (read: throttle)
// start the time iterator if not running (read: throttle)
if (timeIterator === null) {

@@ -92,3 +111,2 @@ timeIterator = setInterval(processNextKey, throttle);

});
writePromise = storage.setItem(storageKey, serialize(stagedState)).catch(onWriteFail);

@@ -105,2 +123,4 @@ }

// @TODO add fail handlers (typically storage full)
if (writeFailHandler) writeFailHandler(err);
if (err && process.env.NODE_ENV !== 'production') {

@@ -115,6 +135,7 @@ console.error('Error storing data', err);

}
return writePromise || Promise.resolve();
};
}; // return `persistoid`
// return `persistoid`
return {

@@ -124,9 +145,7 @@ update: update,

};
}
} // @NOTE in the future this may be exposed via config
// @NOTE in the future this may be exposed via config
function defaultSerialize(data) {
return JSON.stringify(data);
}

@@ -5,9 +5,7 @@ "use strict";

exports.default = createTransform;
function createTransform(
// @NOTE inbound: transform state coming from redux on its way to being serialized and stored
inbound,
// @NOTE outbound: transform state coming from storage, on its way to be rehydrated into redux
function createTransform( // @NOTE inbound: transform state coming from redux on its way to being serialized and stored
inbound, // @NOTE outbound: transform state coming from storage, on its way to be rehydrated into redux
outbound) {
var config = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
var whitelist = config.whitelist || null;

@@ -14,0 +12,0 @@ var blacklist = config.blacklist || null;

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

'use strict';
"use strict";

@@ -6,12 +6,29 @@ exports.__esModule = true;

var _constants = require('./constants');
require("core-js/modules/web.dom.iterable");
require("core-js/modules/es6.array.iterator");
require("core-js/modules/es6.object.to-string");
require("core-js/modules/es6.object.keys");
var _constants = require("./constants");
function getStoredState(config) {
var transforms = config.transforms || [];
var storageKey = '' + (config.keyPrefix !== undefined ? config.keyPrefix : _constants.KEY_PREFIX) + config.key;
var storageKey = "".concat(config.keyPrefix !== undefined ? config.keyPrefix : _constants.KEY_PREFIX).concat(config.key);
var storage = config.storage;
var debug = config.debug;
var deserialize = config.serialize === false ? function (x) {
return x;
} : defaultDeserialize;
var deserialize;
if (!config.deserialize) {
deserialize = defaultDeserialize;
} else if (typeof config.deserialize === 'function') {
deserialize = config.deserialize;
} else {
deserialize = function deserialize(x) {
return x;
};
}
return storage.getItem(storageKey).then(function (serialized) {

@@ -29,3 +46,3 @@ if (!serialized) return undefined;else {

} catch (err) {
if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist/getStoredState: Error restoring data ' + serialized, err);
if (process.env.NODE_ENV !== 'production' && debug) console.log("redux-persist/getStoredState: Error restoring data ".concat(serialized), err);
throw err;

@@ -32,0 +49,0 @@ }

@@ -1,89 +0,64 @@

'use strict';
"use strict";
require("core-js/modules/web.dom.iterable");
require("core-js/modules/es6.array.iterator");
require("core-js/modules/es6.object.to-string");
require("core-js/modules/es6.object.keys");
exports.__esModule = true;
var _exportNames = {
persistReducer: true,
persistCombineReducers: true,
persistStore: true,
createMigrate: true,
createTransform: true,
getStoredState: true,
createPersistoid: true,
purgeStoredState: true
};
exports.purgeStoredState = exports.createPersistoid = exports.getStoredState = exports.createTransform = exports.createMigrate = exports.persistStore = exports.persistCombineReducers = exports.persistReducer = void 0;
var _persistReducer = require('./persistReducer');
var _persistReducer = _interopRequireDefault(require("./persistReducer"));
Object.defineProperty(exports, 'persistReducer', {
enumerable: true,
get: function get() {
return _interopRequireDefault(_persistReducer).default;
}
});
exports.persistReducer = _persistReducer.default;
var _persistCombineReducers = require('./persistCombineReducers');
var _persistCombineReducers = _interopRequireDefault(require("./persistCombineReducers"));
Object.defineProperty(exports, 'persistCombineReducers', {
enumerable: true,
get: function get() {
return _interopRequireDefault(_persistCombineReducers).default;
}
});
exports.persistCombineReducers = _persistCombineReducers.default;
var _persistStore = require('./persistStore');
var _persistStore = _interopRequireDefault(require("./persistStore"));
Object.defineProperty(exports, 'persistStore', {
enumerable: true,
get: function get() {
return _interopRequireDefault(_persistStore).default;
}
});
exports.persistStore = _persistStore.default;
var _createMigrate = require('./createMigrate');
var _createMigrate = _interopRequireDefault(require("./createMigrate"));
Object.defineProperty(exports, 'createMigrate', {
enumerable: true,
get: function get() {
return _interopRequireDefault(_createMigrate).default;
}
});
exports.createMigrate = _createMigrate.default;
var _createTransform = require('./createTransform');
var _createTransform = _interopRequireDefault(require("./createTransform"));
Object.defineProperty(exports, 'createTransform', {
enumerable: true,
get: function get() {
return _interopRequireDefault(_createTransform).default;
}
});
exports.createTransform = _createTransform.default;
var _getStoredState = require('./getStoredState');
var _getStoredState = _interopRequireDefault(require("./getStoredState"));
Object.defineProperty(exports, 'getStoredState', {
enumerable: true,
get: function get() {
return _interopRequireDefault(_getStoredState).default;
}
});
exports.getStoredState = _getStoredState.default;
var _createPersistoid = require('./createPersistoid');
var _createPersistoid = _interopRequireDefault(require("./createPersistoid"));
Object.defineProperty(exports, 'createPersistoid', {
enumerable: true,
get: function get() {
return _interopRequireDefault(_createPersistoid).default;
}
});
exports.createPersistoid = _createPersistoid.default;
var _purgeStoredState = require('./purgeStoredState');
var _purgeStoredState = _interopRequireDefault(require("./purgeStoredState"));
Object.defineProperty(exports, 'purgeStoredState', {
enumerable: true,
get: function get() {
return _interopRequireDefault(_purgeStoredState).default;
}
});
exports.purgeStoredState = _purgeStoredState.default;
var _constants = require('./constants');
var _constants = require("./constants");
Object.keys(_constants).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function get() {
return _constants[key];
}
});
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
exports[key] = _constants[key];
});
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

@@ -1,20 +0,33 @@

'use strict';
"use strict";
exports.__esModule = true;
exports.default = getStoredState;
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; };
require("core-js/modules/es6.object.keys");
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; };
require("core-js/modules/es7.symbol.async-iterator");
exports.default = getStoredState;
require("core-js/modules/es6.symbol");
var _getStoredState = require('../getStoredState');
require("core-js/modules/web.dom.iterable");
var _getStoredState2 = _interopRequireDefault(_getStoredState);
require("core-js/modules/es6.array.iterator");
require("core-js/modules/es6.promise");
require("core-js/modules/es6.object.to-string");
var _getStoredState = _interopRequireDefault(require("../getStoredState"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
function getStoredState(v4Config) {
return function (v5Config) {
return (0, _getStoredState2.default)(v5Config).then(function (state) {
return (0, _getStoredState.default)(v5Config).then(function (state) {
if (state) return state;else return getStoredStateV4(v4Config);

@@ -28,3 +41,3 @@ });

function hasLocalStorage() {
if ((typeof self === 'undefined' ? 'undefined' : _typeof(self)) !== 'object' || !('localStorage' in self)) {
if ((typeof self === "undefined" ? "undefined" : _typeof(self)) !== 'object' || !('localStorage' in self)) {
return false;

@@ -34,11 +47,12 @@ }

try {
var _storage = self.localStorage;
var testKey = 'redux-persist localStorage test';
_storage.setItem(testKey, 'test');
_storage.getItem(testKey);
_storage.removeItem(testKey);
var storage = self.localStorage;
var testKey = "redux-persist localStorage test";
storage.setItem(testKey, 'test');
storage.getItem(testKey);
storage.removeItem(testKey);
} catch (e) {
if (process.env.NODE_ENV !== 'production') console.warn('redux-persist localStorage test failed, persistence will be disabled.');
if (process.env.NODE_ENV !== 'production') console.warn("redux-persist localStorage test failed, persistence will be disabled.");
return false;
}
return true;

@@ -48,4 +62,6 @@ }

var noop = function noop() {
/* noop */return null;
/* noop */
return null;
};
var noStorage = {

@@ -57,2 +73,3 @@ getItem: noop,

};
var createAsyncLocalStorage = function createAsyncLocalStorage() {

@@ -65,5 +82,7 @@ if (!hasLocalStorage()) return noStorage;

var keys = [];
for (var i = 0; i < localStorage.length; i++) {
keys.push(localStorage.key(i));
}
cb(null, keys);

@@ -112,10 +131,9 @@ } catch (e) {

var transforms = v4Config.transforms || [];
var keyPrefix = v4Config.keyPrefix !== undefined ? v4Config.keyPrefix : KEY_PREFIX;
var keyPrefix = v4Config.keyPrefix !== undefined ? v4Config.keyPrefix : KEY_PREFIX; // fallback getAllKeys to `keys` if present (LocalForage compatability)
// fallback getAllKeys to `keys` if present (LocalForage compatability)
if (storage.keys && !storage.getAllKeys) storage = _extends({}, storage, { getAllKeys: storage.keys });
if (storage.keys && !storage.getAllKeys) storage = _objectSpread({}, storage, {
getAllKeys: storage.keys
});
var restoredState = {};
var completionCount = 0;
storage.getAllKeys(function (err) {

@@ -135,3 +153,2 @@ var allKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];

var keysToRestore = persistKeys.filter(passWhitelistBlacklist);
var restoreCount = keysToRestore.length;

@@ -170,3 +187,3 @@ if (restoreCount === 0) resolve(undefined);

function createStorageKey(key) {
return '' + keyPrefix + key;
return "".concat(keyPrefix).concat(key);
}

@@ -173,0 +190,0 @@ });

@@ -1,39 +0,67 @@

'use strict';
"use strict";
exports.__esModule = true;
exports.PersistGate = undefined;
exports.PersistGate = void 0;
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; }; }();
require("core-js/modules/es7.symbol.async-iterator");
var _react = require('react');
require("core-js/modules/es6.symbol");
var _react2 = _interopRequireDefault(_react);
require("core-js/modules/es6.object.set-prototype-of");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
require("core-js/modules/es6.promise");
require("core-js/modules/es6.object.to-string");
require("core-js/modules/es7.promise.finally");
var _react = _interopRequireWildcard(require("react"));
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _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; }
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); } }
function _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; }
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
// eslint-disable-line import/no-unresolved
// eslint-disable-line import/no-unresolved
var PersistGate = exports.PersistGate = function (_PureComponent) {
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
var PersistGate =
/*#__PURE__*/
function (_PureComponent) {
_inherits(PersistGate, _PureComponent);
function PersistGate() {
var _ref;
var _getPrototypeOf2;
var _temp, _this, _ret;
var _this;
_classCallCheck(this, PersistGate);
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = PersistGate.__proto__ || Object.getPrototypeOf(PersistGate)).call.apply(_ref, [this].concat(args))), _this), _this.state = {
_this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(PersistGate)).call.apply(_getPrototypeOf2, [this].concat(args)));
_defineProperty(_assertThisInitialized(_this), "state", {
bootstrapped: false
}, _this.handlePersistorState = function () {
});
_defineProperty(_assertThisInitialized(_this), "_unsubscribe", void 0);
_defineProperty(_assertThisInitialized(_this), "handlePersistorState", function () {
var persistor = _this.props.persistor;

@@ -46,17 +74,22 @@

if (_this.props.onBeforeLift) {
Promise.resolve(_this.props.onBeforeLift()).then(function () {
return _this.setState({ bootstrapped: true });
}).catch(function () {
return _this.setState({ bootstrapped: true });
Promise.resolve(_this.props.onBeforeLift()).finally(function () {
return _this.setState({
bootstrapped: true
});
});
} else {
_this.setState({ bootstrapped: true });
_this.setState({
bootstrapped: true
});
}
_this._unsubscribe && _this._unsubscribe();
}
}, _temp), _possibleConstructorReturn(_this, _ret);
});
return _this;
}
_createClass(PersistGate, [{
key: 'componentDidMount',
key: "componentDidMount",
value: function componentDidMount() {

@@ -67,3 +100,3 @@ this._unsubscribe = this.props.persistor.subscribe(this.handlePersistorState);

}, {
key: 'componentWillUnmount',
key: "componentWillUnmount",
value: function componentWillUnmount() {

@@ -73,3 +106,3 @@ this._unsubscribe && this._unsubscribe();

}, {
key: 'render',
key: "render",
value: function render() {

@@ -79,2 +112,3 @@ if (process.env.NODE_ENV !== 'production') {

}
if (typeof this.props.children === 'function') {

@@ -91,4 +125,7 @@ return this.props.children(this.state.bootstrapped);

PersistGate.defaultProps = {
exports.PersistGate = PersistGate;
_defineProperty(PersistGate, "defaultProps", {
children: null,
loading: null
};
});

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

'use strict';
"use strict";

@@ -6,12 +6,8 @@ exports.__esModule = true;

var _redux = require('redux');
var _redux = require("redux");
var _persistReducer = require('./persistReducer');
var _persistReducer = _interopRequireDefault(require("./persistReducer"));
var _persistReducer2 = _interopRequireDefault(_persistReducer);
var _autoMergeLevel = _interopRequireDefault(require("./stateReconciler/autoMergeLevel2"));
var _autoMergeLevel = require('./stateReconciler/autoMergeLevel2');
var _autoMergeLevel2 = _interopRequireDefault(_autoMergeLevel);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

@@ -21,4 +17,4 @@

function persistCombineReducers(config, reducers) {
config.stateReconciler = config.stateReconciler === undefined ? _autoMergeLevel2.default : config.stateReconciler;
return (0, _persistReducer2.default)(config, (0, _redux.combineReducers)(reducers));
config.stateReconciler = config.stateReconciler === undefined ? _autoMergeLevel.default : config.stateReconciler;
return (0, _persistReducer.default)(config, (0, _redux.combineReducers)(reducers));
}

@@ -1,31 +0,38 @@

'use strict';
"use strict";
exports.__esModule = true;
exports.default = persistReducer;
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; };
require("core-js/modules/es6.symbol");
exports.default = persistReducer;
require("core-js/modules/web.dom.iterable");
var _constants = require('./constants');
require("core-js/modules/es6.array.iterator");
var _autoMergeLevel = require('./stateReconciler/autoMergeLevel1');
require("core-js/modules/es6.object.keys");
var _autoMergeLevel2 = _interopRequireDefault(_autoMergeLevel);
require("core-js/modules/es6.promise");
var _createPersistoid = require('./createPersistoid');
require("core-js/modules/es6.object.to-string");
var _createPersistoid2 = _interopRequireDefault(_createPersistoid);
var _constants = require("./constants");
var _getStoredState = require('./getStoredState');
var _autoMergeLevel = _interopRequireDefault(require("./stateReconciler/autoMergeLevel1"));
var _getStoredState2 = _interopRequireDefault(_getStoredState);
var _createPersistoid = _interopRequireDefault(require("./createPersistoid"));
var _purgeStoredState = require('./purgeStoredState');
var _getStoredState = _interopRequireDefault(require("./getStoredState"));
var _purgeStoredState2 = _interopRequireDefault(_purgeStoredState);
var _purgeStoredState = _interopRequireDefault(require("./purgeStoredState"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _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; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
var DEFAULT_TIMEOUT = 5000;

@@ -37,2 +44,3 @@ /*

*/
function persistReducer(config, baseReducer) {

@@ -47,4 +55,4 @@ if (process.env.NODE_ENV !== 'production') {

var debug = config.debug || false;
var stateReconciler = config.stateReconciler === undefined ? _autoMergeLevel2.default : config.stateReconciler;
var getStoredState = config.getStoredState || _getStoredState2.default;
var stateReconciler = config.stateReconciler === undefined ? _autoMergeLevel.default : config.stateReconciler;
var getStoredState = config.getStoredState || _getStoredState.default;
var timeout = config.timeout !== undefined ? config.timeout : DEFAULT_TIMEOUT;

@@ -54,2 +62,3 @@ var _persistoid = null;

var _paused = true;
var conditionalUpdate = function conditionalUpdate(state) {

@@ -64,4 +73,5 @@ // update the persistoid only if we are rehydrated and not paused

_persist = _ref._persist,
rest = _objectWithoutProperties(_ref, ['_persist']);
rest = _objectWithoutProperties(_ref, ["_persist"]); // $FlowIgnore need to update State type
var restState = rest;

@@ -71,7 +81,7 @@

var _sealed = false;
var _rehydrate = function _rehydrate(payload, err) {
// dev warning if we are already sealed
if (process.env.NODE_ENV !== 'production' && _sealed) console.error('redux-persist: rehydrate for "' + config.key + '" called after timeout.', payload, err);
if (process.env.NODE_ENV !== 'production' && _sealed) console.error("redux-persist: rehydrate for \"".concat(config.key, "\" called after timeout."), payload, err); // only rehydrate if we are not already sealed
// only rehydrate if we are not already sealed
if (!_sealed) {

@@ -82,18 +92,14 @@ action.rehydrate(config.key, payload, err);

};
timeout && setTimeout(function () {
!_sealed && _rehydrate(undefined, new Error('redux-persist: persist timed out for persist key "' + config.key + '"'));
}, timeout);
!_sealed && _rehydrate(undefined, new Error("redux-persist: persist timed out for persist key \"".concat(config.key, "\"")));
}, timeout); // @NOTE PERSIST resumes if paused.
// @NOTE PERSIST resumes if paused.
_paused = false;
_paused = false; // @NOTE only ever create persistoid once, ensure we call it at least once, even if _persist has already been set
// @NOTE only ever create persistoid once, ensure we call it at least once, even if _persist has already been set
if (!_persistoid) _persistoid = (0, _createPersistoid2.default)(config);
if (!_persistoid) _persistoid = (0, _createPersistoid.default)(config); // @NOTE PERSIST can be called multiple times, noop after the first
// @NOTE PERSIST can be called multiple times, noop after the first
if (_persist) return state;
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.');
action.register(config.key);
getStoredState(config).then(function (restoredState) {

@@ -103,2 +109,3 @@ var migrate = config.migrate || function (s, v) {

};
migrate(restoredState, version).then(function (migratedState) {

@@ -108,2 +115,3 @@ _rehydrate(migratedState);

if (process.env.NODE_ENV !== 'production' && migrateErr) console.error('redux-persist: migration error', migrateErr);
_rehydrate(undefined, migrateErr);

@@ -114,10 +122,12 @@ });

});
return _extends({}, baseReducer(restState, action), {
_persist: { version: version, rehydrated: false }
return _objectSpread({}, baseReducer(restState, action), {
_persist: {
version: version,
rehydrated: false
}
});
} else if (action.type === _constants.PURGE) {
_purge = true;
action.result((0, _purgeStoredState2.default)(config));
return _extends({}, baseReducer(restState, action), {
action.result((0, _purgeStoredState.default)(config));
return _objectSpread({}, baseReducer(restState, action), {
_persist: _persist

@@ -127,3 +137,3 @@ });

action.result(_persistoid && _persistoid.flush());
return _extends({}, baseReducer(restState, action), {
return _objectSpread({}, baseReducer(restState, action), {
_persist: _persist

@@ -135,30 +145,35 @@ });

// noop on restState if purging
if (_purge) return _extends({}, restState, {
_persist: _extends({}, _persist, { rehydrated: true })
if (_purge) return _objectSpread({}, restState, {
_persist: _objectSpread({}, _persist, {
rehydrated: true
}) // @NOTE if key does not match, will continue to default else below
// @NOTE if key does not match, will continue to default else below
});if (action.key === config.key) {
});
if (action.key === config.key) {
var reducedState = baseReducer(restState, action);
var inboundState = action.payload;
// only reconcile state if stateReconciler and inboundState are both defined
var inboundState = action.payload; // only reconcile state if stateReconciler and inboundState are both defined
var reconciledRest = stateReconciler !== false && inboundState !== undefined ? stateReconciler(inboundState, state, reducedState, config) : reducedState;
var _newState = _extends({}, reconciledRest, {
_persist: _extends({}, _persist, { rehydrated: true })
var _newState = _objectSpread({}, reconciledRest, {
_persist: _objectSpread({}, _persist, {
rehydrated: true
})
});
return conditionalUpdate(_newState);
}
}
} // if we have not already handled PERSIST, straight passthrough
// if we have not already handled PERSIST, straight passthrough
if (!_persist) return baseReducer(state, action);
// run base reducer:
if (!_persist) return baseReducer(state, action); // run base reducer:
// is state modified ? return original : return updated
var newState = baseReducer(restState, action);
if (newState === restState) return state;else {
newState._persist = _persist;
return conditionalUpdate(newState);
}
if (newState === restState) return state;
return conditionalUpdate(_objectSpread({}, newState, {
_persist: _persist
}));
};
}

@@ -1,21 +0,46 @@

'use strict';
"use strict";
exports.__esModule = true;
exports.default = persistStore;
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; };
require("core-js/modules/es6.array.from");
exports.default = persistStore;
require("core-js/modules/es6.regexp.to-string");
var _redux = require('redux');
require("core-js/modules/es7.symbol.async-iterator");
var _persistReducer = require('./persistReducer');
require("core-js/modules/es6.symbol");
var _persistReducer2 = _interopRequireDefault(_persistReducer);
require("core-js/modules/es6.object.keys");
var _constants = require('./constants');
require("core-js/modules/es6.promise");
require("core-js/modules/web.dom.iterable");
require("core-js/modules/es6.array.iterator");
require("core-js/modules/es6.object.to-string");
require("core-js/modules/es6.string.iterator");
var _redux = require("redux");
var _persistReducer = _interopRequireDefault(require("./persistReducer"));
var _constants = require("./constants");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _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); } }
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
var initialState = {

@@ -28,12 +53,21 @@ registry: [],

var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
var action = arguments[1];
var action = arguments.length > 1 ? arguments[1] : undefined;
switch (action.type) {
case _constants.REGISTER:
return _extends({}, state, { registry: [].concat(_toConsumableArray(state.registry), [action.key]) });
return _objectSpread({}, state, {
registry: [].concat(_toConsumableArray(state.registry), [action.key])
});
case _constants.REHYDRATE:
var firstIndex = state.registry.indexOf(action.key);
var registry = [].concat(_toConsumableArray(state.registry));
var registry = _toConsumableArray(state.registry);
registry.splice(firstIndex, 1);
return _extends({}, state, { registry: registry, bootstrapped: registry.length === 0 });
return _objectSpread({}, state, {
registry: registry,
bootstrapped: registry.length === 0
});
default:

@@ -50,8 +84,10 @@ return state;

bannedKeys.forEach(function (k) {
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.');
if (!!optionsToTest[k]) console.error("redux-persist: invalid option passed to persistStore: \"".concat(k, "\". You may be incorrectly passing persistConfig into persistStore, whereas it should be passed into persistReducer."));
});
}
var boostrappedCb = cb || false;
var _pStore = (0, _redux.createStore)(persistorReducer, initialState, options ? options.enhancer : undefined);
var register = function register(key) {

@@ -69,6 +105,9 @@ _pStore.dispatch({

err: err,
key: key
// dispatch to `store` to rehydrate and `persistor` to track result
};store.dispatch(rehydrateAction);
key: key // dispatch to `store` to rehydrate and `persistor` to track result
};
store.dispatch(rehydrateAction);
_pStore.dispatch(rehydrateAction);
if (boostrappedCb && persistor.getState().bootstrapped) {

@@ -80,3 +119,3 @@ boostrappedCb();

var persistor = _extends({}, _pStore, {
var persistor = _objectSpread({}, _pStore, {
purge: function purge() {

@@ -108,3 +147,7 @@ var results = [];

persist: function persist() {
store.dispatch({ type: _constants.PERSIST, register: register, rehydrate: rehydrate });
store.dispatch({
type: _constants.PERSIST,
register: register,
rehydrate: rehydrate
});
}

@@ -114,4 +157,3 @@ });

persistor.persist();
return persistor;
}

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

'use strict';
"use strict";

@@ -6,7 +6,7 @@ exports.__esModule = true;

var _constants = require('./constants');
var _constants = require("./constants");
function purgeStoredState(config) {
var storage = config.storage;
var storageKey = '' + (config.keyPrefix !== undefined ? config.keyPrefix : _constants.KEY_PREFIX) + config.key;
var storageKey = "".concat(config.keyPrefix !== undefined ? config.keyPrefix : _constants.KEY_PREFIX).concat(config.key);
return storage.removeItem(storageKey, warnIfRemoveError);

@@ -13,0 +13,0 @@ }

@@ -1,25 +0,46 @@

'use strict';
"use strict";
exports.__esModule = true;
exports.default = autoMergeLevel1;
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; };
require("core-js/modules/es7.symbol.async-iterator");
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; };
require("core-js/modules/es6.symbol");
exports.default = autoMergeLevel1;
require("core-js/modules/web.dom.iterable");
require("core-js/modules/es6.array.iterator");
require("core-js/modules/es6.object.to-string");
require("core-js/modules/es6.object.keys");
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
/*
autoMergeLevel1:
- merges 1 level of substate
- skips substate if already modified
*/
function autoMergeLevel1(inboundState, originalState, reducedState, _ref) {
var debug = _ref.debug;
var newState = _extends({}, reducedState);
// only rehydrate if inboundState exists and is an object
if (inboundState && (typeof inboundState === 'undefined' ? 'undefined' : _typeof(inboundState)) === 'object') {
var newState = _objectSpread({}, reducedState); // only rehydrate if inboundState exists and is an object
if (inboundState && _typeof(inboundState) === 'object') {
Object.keys(inboundState).forEach(function (key) {
// ignore _persist data
if (key === '_persist') return;
// if reducer modifies substate, skip auto rehydration
if (key === '_persist') return; // if reducer modifies substate, skip auto rehydration
if (originalState[key] !== reducedState[key]) {
if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist/stateReconciler: sub state for key `%s` modified, skipping.', key);
return;
}
// otherwise hard set the new value
} // otherwise hard set the new value
newState[key] = inboundState[key];

@@ -29,11 +50,4 @@ });

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(', ') + '\'');
if (process.env.NODE_ENV !== 'production' && debug && inboundState && _typeof(inboundState) === 'object') console.log("redux-persist/stateReconciler: rehydrated keys '".concat(Object.keys(inboundState).join(', '), "'"));
return newState;
}
/*
autoMergeLevel1:
- merges 1 level of substate
- skips substate if already modified
*/
}

@@ -1,20 +0,41 @@

'use strict';
"use strict";
exports.__esModule = true;
exports.default = autoMergeLevel2;
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; };
require("core-js/modules/es7.symbol.async-iterator");
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; };
require("core-js/modules/es6.symbol");
exports.default = autoMergeLevel2;
require("core-js/modules/web.dom.iterable");
require("core-js/modules/es6.array.iterator");
require("core-js/modules/es6.object.to-string");
require("core-js/modules/es6.object.keys");
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
/*
autoMergeLevel2:
- merges 2 level of substate
- skips substate if already modified
- this is essentially redux-perist v4 behavior
*/
function autoMergeLevel2(inboundState, originalState, reducedState, _ref) {
var debug = _ref.debug;
var newState = _extends({}, reducedState);
// only rehydrate if inboundState exists and is an object
if (inboundState && (typeof inboundState === 'undefined' ? 'undefined' : _typeof(inboundState)) === 'object') {
var newState = _objectSpread({}, reducedState); // only rehydrate if inboundState exists and is an object
if (inboundState && _typeof(inboundState) === 'object') {
Object.keys(inboundState).forEach(function (key) {
// ignore _persist data
if (key === '_persist') return;
// if reducer modifies substate, skip auto rehydration
if (key === '_persist') return; // if reducer modifies substate, skip auto rehydration
if (originalState[key] !== reducedState[key]) {

@@ -24,8 +45,10 @@ if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist/stateReconciler: sub state for key `%s` modified, skipping.', key);

}
if (isPlainEnoughObject(reducedState[key])) {
// if object is plain enough shallow merge the new values (hence "Level2")
newState[key] = _extends({}, newState[key], inboundState[key]);
newState[key] = _objectSpread({}, newState[key], inboundState[key]);
return;
}
// otherwise hard set
} // otherwise hard set
newState[key] = inboundState[key];

@@ -35,16 +58,8 @@ });

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(', ') + '\'');
if (process.env.NODE_ENV !== 'production' && debug && inboundState && _typeof(inboundState) === 'object') console.log("redux-persist/stateReconciler: rehydrated keys '".concat(Object.keys(inboundState).join(', '), "'"));
return newState;
}
/*
autoMergeLevel2:
- merges 2 level of substate
- skips substate if already modified
- this is essentially redux-perist v4 behavior
*/
function isPlainEnoughObject(o) {
return o !== null && !Array.isArray(o) && (typeof o === 'undefined' ? 'undefined' : _typeof(o)) === 'object';
return o !== null && !Array.isArray(o) && _typeof(o) === 'object';
}

@@ -6,3 +6,2 @@ "use strict";

/*

@@ -12,5 +11,4 @@ hardSet:

*/
function hardSet(inboundState) {
return inboundState;
}

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

'use strict';
"use strict";

@@ -6,10 +6,12 @@ exports.__esModule = true;

var _getStorage = require('./getStorage');
require("core-js/modules/es6.promise");
var _getStorage2 = _interopRequireDefault(_getStorage);
require("core-js/modules/es6.object.to-string");
var _getStorage = _interopRequireDefault(require("./getStorage"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function createWebStorage(type) {
var storage = (0, _getStorage2.default)(type);
var storage = (0, _getStorage.default)(type);
return {

@@ -16,0 +18,0 @@ getItem: function getItem(key) {

@@ -1,9 +0,11 @@

'use strict';
"use strict";
exports.__esModule = true;
exports.default = getStorage;
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; };
require("core-js/modules/es7.symbol.async-iterator");
exports.default = getStorage;
require("core-js/modules/es6.symbol");
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

@@ -19,3 +21,3 @@ function noop() {}

function hasStorage(storageType) {
if ((typeof self === 'undefined' ? 'undefined' : _typeof(self)) !== 'object' || !(storageType in self)) {
if ((typeof self === "undefined" ? "undefined" : _typeof(self)) !== 'object' || !(storageType in self)) {
return false;

@@ -26,3 +28,3 @@ }

var storage = self[storageType];
var testKey = 'redux-persist ' + storageType + ' test';
var testKey = "redux-persist ".concat(storageType, " test");
storage.setItem(testKey, 'test');

@@ -32,5 +34,6 @@ storage.getItem(testKey);

} catch (e) {
if (process.env.NODE_ENV !== 'production') console.warn('redux-persist ' + storageType + ' test failed, persistence will be disabled.');
if (process.env.NODE_ENV !== 'production') console.warn("redux-persist ".concat(storageType, " test failed, persistence will be disabled."));
return false;
}
return true;

@@ -40,9 +43,10 @@ }

function getStorage(type) {
var storageType = type + 'Storage';
var storageType = "".concat(type, "Storage");
if (hasStorage(storageType)) return self[storageType];else {
if (process.env.NODE_ENV !== 'production') {
console.error('redux-persist failed to create sync storage. falling back to memory storage.');
console.error("redux-persist failed to create sync storage. falling back to noop storage.");
}
return noopStorage;
}
}

@@ -1,11 +0,12 @@

'use strict';
"use strict";
exports.__esModule = true;
exports.default = void 0;
var _createWebStorage = require('./createWebStorage');
var _createWebStorage = _interopRequireDefault(require("./createWebStorage"));
var _createWebStorage2 = _interopRequireDefault(_createWebStorage);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = (0, _createWebStorage2.default)('local');
var _default = (0, _createWebStorage.default)('local');
exports.default = _default;

@@ -1,11 +0,12 @@

'use strict';
"use strict";
exports.__esModule = true;
exports.default = void 0;
var _createWebStorage = require('./createWebStorage');
var _createWebStorage = _interopRequireDefault(require("./createWebStorage"));
var _createWebStorage2 = _interopRequireDefault(_createWebStorage);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = (0, _createWebStorage2.default)('session');
var _default = (0, _createWebStorage.default)('session');
exports.default = _default;

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

'use strict';
"use strict";
var _constants = require('./constants');
var _constants = require("./constants");
{
"name": "redux-persist",
"version": "5.11.0-alpha",
"version": "6.0.0-pre1",
"description": "persist and rehydrate redux stores",

@@ -15,2 +15,3 @@ "main": "lib/index.js",

"integration",
"types",
"README.md"

@@ -27,2 +28,3 @@ ],

"flow-copy": "flow-copy-source src es && flow-copy-source src lib",
"prepare": "npm run build",
"precommit": "lint-staged",

@@ -48,20 +50,19 @@ "stats:size": "node ./scripts/size-estimator.js",

"require": [
"babel-polyfill",
"babel-register"
],
"babel": "inherit"
"@babel/polyfill",
"@babel/register"
]
},
"devDependencies": {
"@babel/cli": "^7.4.4",
"@babel/core": "^7.4.4",
"@babel/plugin-proposal-class-properties": "^7.4.4",
"@babel/plugin-proposal-object-rest-spread": "^7.4.4",
"@babel/plugin-transform-modules-commonjs": "^7.4.4",
"@babel/polyfill": "^7.4.4",
"@babel/preset-env": "^7.4.4",
"@babel/preset-flow": "^7.0.0",
"@babel/register": "^7.4.4",
"@types/react": "^16.4.18",
"ava": "^0.25.0",
"babel-cli": "^6.26.0",
"babel-eslint": "^8.0.1",
"babel-plugin-external-helpers": "^6.22.0",
"babel-plugin-transform-class-properties": "^6.24.1",
"babel-plugin-transform-es2015-modules-commonjs": "^6.24.1",
"babel-plugin-transform-object-rest-spread": "^6.23.0",
"babel-polyfill": "^6.23.0",
"babel-preset-env": "^1.5.2",
"babel-preset-flow": "^6.23.0",
"babel-register": "^6.24.1",
"ava": "^1.4.1",
"babel-eslint": "^10.0.1",
"cross-env": "^5.0.1",

@@ -72,3 +73,3 @@ "dtslint": "^0.3.0",

"eslint-plugin-import": "^2.2.0",
"flow-bin": "^0.64.0",
"flow-bin": "^0.98.1",
"flow-copy-source": "^1.2.2",

@@ -83,5 +84,5 @@ "husky": "^0.14.3",

"rollup": "^0.55.3",
"rollup-plugin-babel": "^3.0.3",
"rollup-plugin-node-resolve": "^3.0.2",
"rollup-plugin-replace": "^2.0.0",
"rollup-plugin-babel": "^4.3.2",
"rollup-plugin-node-resolve": "^4.2.3",
"rollup-plugin-replace": "^2.2.0",
"rollup-plugin-uglify": "^3.0.0",

@@ -88,0 +89,0 @@ "sinon": "^4.2.2",

@@ -6,2 +6,3 @@ # Redux Persist

[![build status](https://img.shields.io/travis/rt2zz/redux-persist/master.svg?style=flat-square)](https://travis-ci.org/rt2zz/redux-persist) [![npm version](https://img.shields.io/npm/v/redux-persist.svg?style=flat-square)](https://www.npmjs.com/package/redux-persist) [![npm downloads](https://img.shields.io/npm/dm/redux-persist.svg?style=flat-square)](https://www.npmjs.com/package/redux-persist)
[![#redux-persist on Discord](https://img.shields.io/discord/102860784329052160.svg)](https://discord.gg/ExrEvmv)

@@ -25,3 +26,3 @@ ## Quickstart

import { persistStore, persistReducer } from 'redux-persist'
import storage from 'redux-persist/lib/storage' // defaults to localStorage for web and AsyncStorage for react-native
import storage from 'redux-persist/lib/storage' // defaults to localStorage for web

@@ -184,2 +185,3 @@ import rootReducer from './reducers'

- [immutable](https://github.com/rt2zz/redux-persist-transform-immutable) - support immutable reducers
- [seamless-immutable](https://github.com/hilkeheremans/redux-persist-seamless-immutable) - support seamless-immutable reducers
- [compress](https://github.com/rt2zz/redux-persist-transform-compress) - compress your serialized state with lz-string

@@ -196,3 +198,5 @@ - [encrypt](https://github.com/maxdeviant/redux-persist-transform-encrypt) - encrypt your serialized state with AES

```js
const myTransform = createTransform(
import { createTransform } from 'redux-persist';
const SetTransform = createTransform(
// transform state on its way to being serialized and persisted.

@@ -211,13 +215,28 @@ (inboundState, key) => {

);
export default SetTransform;
```
The createTransform function takes three parameters.
1. An "inbound" function that gets called right before state is persisted.
2. An "outbound" function that gets called right before state is rehydrated.
3. Config.
The `createTransform` function takes three parameters.
1. An "inbound" function that gets called right before state is persisted (optional).
2. An "outbound" function that gets called right before state is rehydrated (optional).
3. A config object that determines which keys in your state will be transformed (by default no keys are transformed).
In order to take effect transforms need to be added to a `PersistReducer`’s config object.
```
import storage from 'redux-persist/lib/storage';
import { SetTransform } from './transforms';
const persistConfig = {
key: 'root',
storage: storage,
transforms: [SetTransform]
};
```
## Storage Engines
- **localStorage** `import storage from 'redux-persist/lib/storage'`
- **sessionStorage** `import storageSession from 'redux-persist/lib/storage/session'`
- **AsyncStorage** react-native `import { AsyncStorage } from 'react-native'`
- **AsyncStorage** react-native `import { AsyncStorage } from '@react-native-community/async-storage'`
- **[localForage](https://github.com/mozilla/localForage)** recommended for web

@@ -228,2 +247,3 @@ - **[electron storage](https://github.com/psperber/redux-persist-electron-storage)** Electron support via [electron store](https://github.com/sindresorhus/electron-store)

- **[redux-persist-sensitive-storage](https://github.com/CodingZeal/redux-persist-sensitive-storage)** react-native, for sensitive information (uses [react-native-sensitive-info](https://github.com/mCodex/react-native-sensitive-info)).
- **[redux-persist-expo-filesystem](https://github.com/t73liu/redux-persist-expo-filesystem)** react-native, similar to redux-persist-filesystem-storage but does not require linking or ejecting CRNA/Expo app. Only available if using Expo SDK (Expo, create-react-native-app, standalone).
- **[redux-persist-expo-securestore](https://github.com/Cretezy/redux-persist-expo-securestore)** react-native, for sensitive information using Expo's SecureStore. Only available if using Expo SDK (Expo, create-react-native-app, standalone).

@@ -236,1 +256,15 @@ - **[redux-persist-fs-storage](https://github.com/leethree/redux-persist-fs-storage)** react-native-fs engine

- **custom** any conforming storage api implementing the following methods: `setItem` `getItem` `removeItem`. (**NB**: These methods must support promises)
## Community
### Chat Room
[![#redux-persist on Discord](https://img.shields.io/discord/102860784329052160.svg)](https://discord.gg/ExrEvmv) #redux-persist channel in the [Reactiflux](https://www.reactiflux.com/) Discord
### Blog articles from the community
* [The Definitive Guide to Redux Persist: Persist your Redux state in between app launches with Redux Persist](https://blog.reactnativecoach.com/the-definitive-guide-to-redux-persist-84738167975) by Mark Newton
* [Redux-persist: The Good Parts](https://codeburst.io/redux-persist-the-good-parts-adfab9f91c3b) by Feargal Walsh
* [Redux: Persist Your State](https://medium.com/async-la/redux-persist-your-state-7ad346c4dd07) by Zack
* [{Persist}ence is Key: Using Redux-Persist to Store Your State in LocalStorage](https://medium.com/@clrksanford/persist-ence-is-key-using-redux-persist-to-store-your-state-in-localstorage-ac6a000aee63) by Clark Sanford
* [How to use Redux Persist when migrating your states](https://medium.freecodecamp.org/how-to-use-redux-persist-when-migrating-your-states-a5dee16b5ead) by Lusan Das

@@ -19,3 +19,11 @@ // @flow

const storage = config.storage
const serialize = config.serialize === false ? x => x : defaultSerialize
let serialize
if (!config.serialize) {
serialize = defaultSerialize
} else if (typeof config.serialize === 'function') {
serialize = config.serialize
} else {
serialize = x => x
}
const writeFailHandler = config.writeFailHandler || null

@@ -44,3 +52,4 @@ // initialize stateful values

passWhitelistBlacklist(key) &&
keysToProcess.indexOf(key) === -1
keysToProcess.indexOf(key) === -1 &&
lastState[key] !== undefined
) {

@@ -112,2 +121,3 @@ keysToProcess.push(key)

// @TODO add fail handlers (typically storage full)
if (writeFailHandler) writeFailHandler(err)
if (err && process.env.NODE_ENV !== 'production') {

@@ -114,0 +124,0 @@ console.error('Error storing data', err)

@@ -16,3 +16,10 @@ // @flow

const debug = config.debug
const deserialize = config.serialize === false ? x => x : defaultDeserialize
let deserialize
if (!config.deserialize) {
deserialize = defaultDeserialize
} else if (typeof config.deserialize === 'function') {
deserialize = config.deserialize
} else {
deserialize = x => x
}
return storage.getItem(storageKey).then(serialized => {

@@ -19,0 +26,0 @@ if (!serialized) return undefined

@@ -9,2 +9,3 @@ // @flow

storage?: Object,
serialize: boolean,
keyPrefix?: string,

@@ -11,0 +12,0 @@ transforms?: Array<Transform>,

@@ -8,4 +8,4 @@ // @flow

onBeforeLift?: Function,
children?: Node | Function,
loading?: Node,
children: Node | Function,
loading: Node,
persistor: Persistor,

@@ -20,2 +20,3 @@ }

static defaultProps = {
children: null,
loading: null,

@@ -42,4 +43,3 @@ }

Promise.resolve(this.props.onBeforeLift())
.then(() => this.setState({ bootstrapped: true }))
.catch(() => this.setState({ bootstrapped: true }))
.finally(() => this.setState({ bootstrapped: true }))
} else {

@@ -46,0 +46,0 @@ this.setState({ bootstrapped: true })

@@ -67,2 +67,3 @@ // @flow

let { _persist, ...rest } = state || {}
// $FlowIgnore need to update State type
let restState: State = rest

@@ -191,7 +192,4 @@

if (newState === restState) return state
else {
newState._persist = _persist
return conditionalUpdate(newState)
}
return conditionalUpdate({ ...newState, _persist })
}
}

@@ -39,3 +39,3 @@ // @flow

console.error(
`redux-persist failed to create sync storage. falling back to memory storage.`
`redux-persist failed to create sync storage. falling back to noop storage.`
)

@@ -42,0 +42,0 @@ }

@@ -26,4 +26,6 @@ // @flow

debug?: boolean,
serialize?: boolean,
serialize?: boolean | Function,
deserialize?: boolean | Function,
timeout?: number,
writeFailHandler?: Function,
}

@@ -30,0 +32,0 @@

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc