New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

redux-query

Package Overview
Dependencies
Maintainers
2
Versions
78
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

redux-query - npm Package Compare versions

Comparing version 3.0.0-alpha.4 to 3.0.0-alpha.5

dist/commonjs/types.js

14

babel.config.js

@@ -5,14 +5,2 @@ /* eslint-env node */

module.exports = {
presets: [
[
'@babel/preset-env',
{
targets: {
node: 'current',
},
},
],
],
plugins: ['@babel/plugin-proposal-object-rest-spread'],
};
module.exports = require('../../babel.config');

@@ -10,18 +10,15 @@ "use strict";

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 _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; } }
const requestStart = ({
body,
meta,
networkHandler,
queryKey,
url
}) => {
var requestStart = function requestStart(_ref) {
var body = _ref.body,
meta = _ref.meta,
queryKey = _ref.queryKey,
url = _ref.url;
return {
type: actionTypes.REQUEST_START,
url,
body,
networkHandler,
meta,
queryKey
url: url,
body: body,
meta: meta,
queryKey: queryKey
};

@@ -32,26 +29,25 @@ };

const requestSuccess = ({
body,
duration,
entities,
meta,
queryKey,
responseBody,
responseHeaders,
responseText,
status,
url
}) => {
var requestSuccess = function requestSuccess(_ref2) {
var body = _ref2.body,
duration = _ref2.duration,
entities = _ref2.entities,
meta = _ref2.meta,
queryKey = _ref2.queryKey,
responseBody = _ref2.responseBody,
responseHeaders = _ref2.responseHeaders,
responseText = _ref2.responseText,
status = _ref2.status,
url = _ref2.url;
return {
type: actionTypes.REQUEST_SUCCESS,
url,
body,
duration,
status,
entities,
responseBody,
responseText,
responseHeaders,
meta,
queryKey,
url: url,
body: body,
duration: duration,
status: status,
entities: entities,
responseBody: responseBody,
responseText: responseText,
responseHeaders: responseHeaders,
meta: meta,
queryKey: queryKey,
time: Date.now()

@@ -63,24 +59,23 @@ };

const requestFailure = ({
body,
duration,
meta,
queryKey,
responseBody,
responseHeaders,
responseText,
status,
url
}) => {
var requestFailure = function requestFailure(_ref3) {
var body = _ref3.body,
duration = _ref3.duration,
meta = _ref3.meta,
queryKey = _ref3.queryKey,
responseBody = _ref3.responseBody,
responseHeaders = _ref3.responseHeaders,
responseText = _ref3.responseText,
status = _ref3.status,
url = _ref3.url;
return {
type: actionTypes.REQUEST_FAILURE,
url,
body,
duration,
status,
responseBody,
responseText,
responseHeaders,
meta,
queryKey,
url: url,
body: body,
duration: duration,
status: status,
responseBody: responseBody,
responseText: responseText,
responseHeaders: responseHeaders,
meta: meta,
queryKey: queryKey,
time: Date.now()

@@ -92,18 +87,15 @@ };

const mutateStart = ({
body,
meta,
networkHandler,
optimisticEntities,
queryKey,
url
}) => {
var mutateStart = function mutateStart(_ref4) {
var body = _ref4.body,
meta = _ref4.meta,
optimisticEntities = _ref4.optimisticEntities,
queryKey = _ref4.queryKey,
url = _ref4.url;
return {
type: actionTypes.MUTATE_START,
url,
body,
networkHandler,
optimisticEntities,
queryKey,
meta
url: url,
body: body,
optimisticEntities: optimisticEntities,
queryKey: queryKey,
meta: meta
};

@@ -114,27 +106,26 @@ };

const mutateSuccess = ({
body,
duration,
entities,
meta,
queryKey,
responseBody,
responseHeaders,
responseText,
status,
url
}) => {
var mutateSuccess = function mutateSuccess(_ref5) {
var body = _ref5.body,
duration = _ref5.duration,
entities = _ref5.entities,
meta = _ref5.meta,
queryKey = _ref5.queryKey,
responseBody = _ref5.responseBody,
responseHeaders = _ref5.responseHeaders,
responseText = _ref5.responseText,
status = _ref5.status,
url = _ref5.url;
return {
type: actionTypes.MUTATE_SUCCESS,
url,
body,
duration,
status,
responseBody,
responseText,
responseHeaders,
entities,
queryKey,
url: url,
body: body,
duration: duration,
status: status,
responseBody: responseBody,
responseText: responseText,
responseHeaders: responseHeaders,
entities: entities,
queryKey: queryKey,
time: Date.now(),
meta
meta: meta
};

@@ -145,27 +136,26 @@ };

const mutateFailure = ({
body,
duration,
meta,
queryKey,
responseBody,
responseHeaders,
responseText,
rolledBackEntities,
status,
url
}) => {
var mutateFailure = function mutateFailure(_ref6) {
var body = _ref6.body,
duration = _ref6.duration,
meta = _ref6.meta,
queryKey = _ref6.queryKey,
responseBody = _ref6.responseBody,
responseHeaders = _ref6.responseHeaders,
responseText = _ref6.responseText,
rolledBackEntities = _ref6.rolledBackEntities,
status = _ref6.status,
url = _ref6.url;
return {
type: actionTypes.MUTATE_FAILURE,
url,
body,
duration,
status,
responseBody,
responseText,
responseHeaders,
rolledBackEntities,
queryKey,
url: url,
body: body,
duration: duration,
status: status,
responseBody: responseBody,
responseText: responseText,
responseHeaders: responseHeaders,
rolledBackEntities: rolledBackEntities,
queryKey: queryKey,
time: Date.now(),
meta
meta: meta
};

@@ -176,28 +166,25 @@ };

const requestAsync = ({
body,
force,
meta,
options,
queryKey,
retry,
transform,
update,
url,
/* eslint-disable-next-line camelcase */
unstable_preDispatchCallback
}) => {
var requestAsync = function requestAsync(_ref7) {
var body = _ref7.body,
force = _ref7.force,
meta = _ref7.meta,
options = _ref7.options,
queryKey = _ref7.queryKey,
retry = _ref7.retry,
transform = _ref7.transform,
update = _ref7.update,
url = _ref7.url,
unstable_preDispatchCallback = _ref7.unstable_preDispatchCallback;
return {
type: actionTypes.REQUEST_ASYNC,
body,
force,
queryKey,
meta,
options,
retry,
transform,
update,
url,
unstable_preDispatchCallback
body: body,
force: force,
queryKey: queryKey,
meta: meta,
options: options,
retry: retry,
transform: transform,
update: update,
url: url,
unstable_preDispatchCallback: unstable_preDispatchCallback
};

@@ -208,24 +195,23 @@ };

const mutateAsync = ({
body,
meta,
optimisticUpdate,
options,
queryKey,
rollback,
transform,
update,
url
}) => {
var mutateAsync = function mutateAsync(_ref8) {
var body = _ref8.body,
meta = _ref8.meta,
optimisticUpdate = _ref8.optimisticUpdate,
options = _ref8.options,
queryKey = _ref8.queryKey,
rollback = _ref8.rollback,
transform = _ref8.transform,
update = _ref8.update,
url = _ref8.url;
return {
type: actionTypes.MUTATE_ASYNC,
body,
meta,
optimisticUpdate,
options,
queryKey,
rollback,
transform,
update,
url
body: body,
meta: meta,
optimisticUpdate: optimisticUpdate,
options: options,
queryKey: queryKey,
rollback: rollback,
transform: transform,
update: update,
url: url
};

@@ -236,6 +222,6 @@ };

const cancelQuery = queryKey => {
var cancelQuery = function cancelQuery(queryKey) {
return {
type: actionTypes.CANCEL_QUERY,
queryKey
queryKey: queryKey
};

@@ -246,6 +232,6 @@ };

const updateEntities = update => {
var updateEntities = function updateEntities(update) {
return {
type: actionTypes.UPDATE_ENTITIES,
update
update: update
};

@@ -252,0 +238,0 @@ };

@@ -7,23 +7,23 @@ "use strict";

exports.UPDATE_ENTITIES = exports.RESET = exports.MUTATE_FAILURE = exports.MUTATE_SUCCESS = exports.MUTATE_START = exports.MUTATE_ASYNC = exports.CANCEL_QUERY = exports.REQUEST_FAILURE = exports.REQUEST_SUCCESS = exports.REQUEST_START = exports.REQUEST_ASYNC = void 0;
const REQUEST_ASYNC = '@@query/REQUEST_ASYNC';
var REQUEST_ASYNC = '@@query/REQUEST_ASYNC';
exports.REQUEST_ASYNC = REQUEST_ASYNC;
const REQUEST_START = '@@query/REQUEST_START';
var REQUEST_START = '@@query/REQUEST_START';
exports.REQUEST_START = REQUEST_START;
const REQUEST_SUCCESS = '@@query/REQUEST_SUCCESS';
var REQUEST_SUCCESS = '@@query/REQUEST_SUCCESS';
exports.REQUEST_SUCCESS = REQUEST_SUCCESS;
const REQUEST_FAILURE = '@@query/REQUEST_FAILURE';
var REQUEST_FAILURE = '@@query/REQUEST_FAILURE';
exports.REQUEST_FAILURE = REQUEST_FAILURE;
const CANCEL_QUERY = '@@query/CANCEL_QUERY';
var CANCEL_QUERY = '@@query/CANCEL_QUERY';
exports.CANCEL_QUERY = CANCEL_QUERY;
const MUTATE_ASYNC = '@@query/MUTATE_ASYNC';
var MUTATE_ASYNC = '@@query/MUTATE_ASYNC';
exports.MUTATE_ASYNC = MUTATE_ASYNC;
const MUTATE_START = '@@query/MUTATE_START';
var MUTATE_START = '@@query/MUTATE_START';
exports.MUTATE_START = MUTATE_START;
const MUTATE_SUCCESS = '@@query/MUTATE_SUCCESS';
var MUTATE_SUCCESS = '@@query/MUTATE_SUCCESS';
exports.MUTATE_SUCCESS = MUTATE_SUCCESS;
const MUTATE_FAILURE = '@@query/MUTATE_FAILURE';
var MUTATE_FAILURE = '@@query/MUTATE_FAILURE';
exports.MUTATE_FAILURE = MUTATE_FAILURE;
const RESET = '@@query/RESET';
var RESET = '@@query/RESET';
exports.RESET = RESET;
const UPDATE_ENTITIES = '@@query/UPDATE_ENTITIES';
var UPDATE_ENTITIES = '@@query/UPDATE_ENTITIES';
exports.UPDATE_ENTITIES = UPDATE_ENTITIES;

@@ -6,4 +6,4 @@ "use strict";

});
exports.default = void 0;
var _default = {
exports["default"] = void 0;
var HttpMethods = {
DELETE: 'DELETE',

@@ -16,2 +16,3 @@ GET: 'GET',

};
exports.default = _default;
var _default = HttpMethods;
exports["default"] = _default;

@@ -7,12 +7,12 @@ "use strict";

exports.GATEWAY_TIMEOUT = exports.SERVICE_UNAVAILABLE = exports.TOO_MANY_REQUESTS = exports.REQUEST_TIMEOUT = exports.UNKNOWN = void 0;
const UNKNOWN = 0;
var UNKNOWN = 0;
exports.UNKNOWN = UNKNOWN;
const REQUEST_TIMEOUT = 408; // client took too long
var REQUEST_TIMEOUT = 408; // client took too long
exports.REQUEST_TIMEOUT = REQUEST_TIMEOUT;
const TOO_MANY_REQUESTS = 429;
var TOO_MANY_REQUESTS = 429;
exports.TOO_MANY_REQUESTS = TOO_MANY_REQUESTS;
const SERVICE_UNAVAILABLE = 503;
var SERVICE_UNAVAILABLE = 503;
exports.SERVICE_UNAVAILABLE = SERVICE_UNAVAILABLE;
const GATEWAY_TIMEOUT = 504;
var GATEWAY_TIMEOUT = 504;
exports.GATEWAY_TIMEOUT = GATEWAY_TIMEOUT;

@@ -8,4 +8,4 @@ "use strict";

enumerable: true,
get: function () {
return _httpMethods.default;
get: function get() {
return _httpMethods["default"];
}

@@ -15,3 +15,3 @@ });

enumerable: true,
get: function () {
get: function get() {
return _queryKey.getQueryKey;

@@ -22,4 +22,4 @@ }

enumerable: true,
get: function () {
return _queries.default;
get: function get() {
return _queries["default"];
}

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

enumerable: true,
get: function () {
return _entities.default;
get: function get() {
return _entities["default"];
}

@@ -36,4 +36,4 @@ });

enumerable: true,
get: function () {
return _errors.default;
get: function get() {
return _errors["default"];
}

@@ -43,4 +43,4 @@ });

enumerable: true,
get: function () {
return _query2.default;
get: function get() {
return _query2["default"];
}

@@ -50,3 +50,3 @@ });

enumerable: true,
get: function () {
get: function get() {
return _actions.cancelQuery;

@@ -57,3 +57,3 @@ }

enumerable: true,
get: function () {
get: function get() {
return _actions.mutateAsync;

@@ -64,3 +64,3 @@ }

enumerable: true,
get: function () {
get: function get() {
return _actions.requestAsync;

@@ -71,3 +71,3 @@ }

enumerable: true,
get: function () {
get: function get() {
return _actions.updateEntities;

@@ -104,4 +104,4 @@ }

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
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 _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; } }

@@ -10,5 +10,5 @@ "use strict";

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
const getQueryKey = queryConfig => {
var getQueryKey = function getQueryKey(queryConfig) {
if (!queryConfig) {

@@ -18,7 +18,5 @@ return null;

const {
url,
body,
queryKey
} = queryConfig;
var url = queryConfig.url,
body = queryConfig.body,
queryKey = queryConfig.queryKey;

@@ -28,5 +26,5 @@ if (queryKey !== null && queryKey !== undefined) {

} else {
return (0, _jsonStableStringify.default)({
url,
body
return (0, _jsonStableStringify["default"])({
url: url,
body: body
});

@@ -33,0 +31,0 @@ }

@@ -8,5 +8,5 @@ "use strict";

const updateEntities = (update, entities, transformed) => {
var updateEntities = function updateEntities(update, entities, transformed) {
// If update is not supplied, then no change to entities will be made
return Object.keys(update || {}).reduce((accum, key) => {
return Object.keys(update || {}).reduce(function (accum, key) {
accum[key] = update[key]((entities || {})[key], (transformed || {})[key]);

@@ -19,4 +19,4 @@ return accum;

const optimisticUpdateEntities = (optimisticUpdate, entities) => {
return Object.keys(optimisticUpdate).reduce((accum, key) => {
var optimisticUpdateEntities = function optimisticUpdateEntities(optimisticUpdate, entities) {
return Object.keys(optimisticUpdate).reduce(function (accum, key) {
accum[key] = optimisticUpdate[key](entities[key]);

@@ -29,4 +29,7 @@ return accum;

const rollbackEntities = (rollback = {}, initialEntities, entities) => {
return Object.keys(initialEntities).reduce((accum, key) => {
var rollbackEntities = function rollbackEntities() {
var rollback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var initialEntities = arguments.length > 1 ? arguments[1] : undefined;
var entities = arguments.length > 2 ? arguments[2] : undefined;
return Object.keys(initialEntities).reduce(function (accum, key) {
if (rollback[key]) {

@@ -33,0 +36,0 @@ accum[key] = rollback[key](initialEntities[key], entities[key]);

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

});
exports.default = void 0;
exports["default"] = void 0;

@@ -27,9 +27,9 @@ var _backo = _interopRequireDefault(require("backo"));

var _queryKey = require("../lib/query-key");
var _queryKey4 = require("../lib/query-key");
var _update = require("../lib/update");
var _update2 = require("../lib/update");
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 _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 _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }

@@ -44,3 +44,3 @@ 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; }

const defaultConfig = {
var defaultConfig = {
backoff: {

@@ -54,86 +54,214 @@ maxAttempts: 5,

statusCodes.SERVICE_UNAVAILABLE, statusCodes.GATEWAY_TIMEOUT],
getQueryKey: _queryKey.getQueryKey
getQueryKey: _queryKey4.getQueryKey
};
const getPendingQueries = queries => {
return (0, _lodash3.default)(queries, query => query.isPending);
var getPendingQueries = function getPendingQueries(queries) {
return (0, _lodash3["default"])(queries, function (query) {
return query.isPending;
});
};
const isStatusOK = status => status >= 200 && status < 300;
var isStatusOK = function isStatusOK(status) {
return status >= 200 && status < 300;
};
const identity = x => x;
var identity = function identity(x) {
return x;
};
const queryMiddleware = (networkInterface, queriesSelector, entitiesSelector, customConfig) => {
return ({
dispatch,
getState
}) => next => action => {
let returnValue;
var queryMiddleware = function queryMiddleware(networkInterface, queriesSelector, entitiesSelector, customConfig) {
var networkHandlersByQueryKey = {};
const _defaultConfig$custom = _objectSpread({}, defaultConfig, customConfig),
{
getQueryKey
} = _defaultConfig$custom,
config = _objectWithoutProperties(_defaultConfig$custom, ["getQueryKey"]);
var abortQuery = function abortQuery(queryKey) {
var networkHandler = networkHandlersByQueryKey[queryKey];
switch (action.type) {
case actionTypes.REQUEST_ASYNC:
{
const {
url,
body,
force,
retry,
transform = identity,
update,
options = {},
meta
} = action;
(0, _invariant.default)(!!url, 'Missing required `url` field in action handler');
const queryKey = getQueryKey(action);
const state = getState();
const queries = queriesSelector(state);
const queriesState = queries[queryKey];
const isPending = (0, _lodash.default)(queriesState, ['isPending']);
const status = (0, _lodash.default)(queriesState, ['status']);
const hasSucceeded = isStatusOK(status);
if (networkHandler) {
networkHandler.abort();
delete networkHandlersByQueryKey[queryKey];
}
};
if (force || !queriesState || retry && !isPending && !hasSucceeded) {
returnValue = new Promise(resolve => {
const start = new Date();
const {
method = _httpMethods.default.GET
} = options;
let attempts = 0;
const backoff = new _backo.default({
min: config.backoff.minDuration,
max: config.backoff.maxDuration
});
return function (_ref) {
var dispatch = _ref.dispatch,
getState = _ref.getState;
return function (next) {
return function (action) {
var returnValue;
const attemptRequest = () => {
const networkHandler = networkInterface(url, method, {
body,
headers: options.headers,
credentials: options.credentials
var _defaultConfig$custom = _objectSpread({}, defaultConfig, customConfig),
getQueryKey = _defaultConfig$custom.getQueryKey,
config = _objectWithoutProperties(_defaultConfig$custom, ["getQueryKey"]);
switch (action.type) {
case actionTypes.REQUEST_ASYNC:
{
var url = action.url,
body = action.body,
force = action.force,
retry = action.retry,
_action$transform = action.transform,
transform = _action$transform === void 0 ? identity : _action$transform,
update = action.update,
_action$options = action.options,
options = _action$options === void 0 ? {} : _action$options,
meta = action.meta;
(0, _invariant["default"])(!!url, 'Missing required `url` field in action handler');
var queryKey = getQueryKey(action);
var state = getState();
var queries = queriesSelector(state);
var queriesState = queries[queryKey];
var isPending = (0, _lodash["default"])(queriesState, ['isPending']);
var status = (0, _lodash["default"])(queriesState, ['status']);
var hasSucceeded = isStatusOK(status);
if (force || !queriesState || retry && !isPending && !hasSucceeded) {
returnValue = new Promise(function (resolve) {
var start = new Date();
var _options$method = options.method,
method = _options$method === void 0 ? _httpMethods["default"].GET : _options$method;
var attempts = 0;
var backoff = new _backo["default"]({
min: config.backoff.minDuration,
max: config.backoff.maxDuration
});
var attemptRequest = function attemptRequest() {
var networkHandler = networkInterface(url, method, {
body: body,
headers: options.headers,
credentials: options.credentials
});
networkHandlersByQueryKey[queryKey] = networkHandler;
dispatch((0, _actions.requestStart)({
body: body,
meta: meta,
queryKey: queryKey,
url: url
}));
attempts += 1;
networkHandler.execute(function (err, status, responseBody, responseText, responseHeaders) {
if (config.retryableStatusCodes.includes(status) && attempts < config.backoff.maxAttempts) {
// TODO take into account Retry-After header if 503
setTimeout(attemptRequest, backoff.duration());
return;
}
var end = new Date();
var duration = end - start;
var transformed;
var newEntities;
if (action.unstable_preDispatchCallback) {
action.unstable_preDispatchCallback();
}
if (err || !isStatusOK(status)) {
dispatch((0, _actions.requestFailure)({
body: body,
duration: duration,
meta: meta,
queryKey: queryKey,
responseBody: responseBody,
responseHeaders: responseHeaders,
status: status,
responseText: responseText,
url: url
}));
resolve({
body: responseBody,
duration: duration,
status: status,
text: responseText,
headers: responseHeaders
});
} else {
var callbackState = getState();
var entities = entitiesSelector(callbackState);
transformed = transform(responseBody, responseText);
newEntities = (0, _update2.updateEntities)(update, entities, transformed);
dispatch((0, _actions.requestSuccess)({
body: body,
duration: duration,
meta: meta,
entities: newEntities,
queryKey: queryKey,
responseBody: responseBody,
responseHeaders: responseHeaders,
status: status,
responseText: responseText,
url: url
}));
resolve({
body: responseBody,
duration: duration,
status: status,
text: responseText,
transformed: transformed,
entities: newEntities,
headers: responseHeaders
});
}
delete networkHandlersByQueryKey[queryKey];
});
};
attemptRequest();
});
dispatch((0, _actions.requestStart)({
body,
meta,
networkHandler,
queryKey,
url
}
break;
}
case actionTypes.MUTATE_ASYNC:
{
var _url = action.url,
_action$transform2 = action.transform,
_transform = _action$transform2 === void 0 ? identity : _action$transform2,
_update = action.update,
rollback = action.rollback,
_body = action.body,
optimisticUpdate = action.optimisticUpdate,
_action$options2 = action.options,
_options = _action$options2 === void 0 ? {} : _action$options2,
_meta = action.meta;
(0, _invariant["default"])(!!_url, 'Missing required `url` field in action handler');
var initialState = getState();
var initialEntities = entitiesSelector(initialState);
var optimisticEntities;
if (optimisticUpdate) {
optimisticEntities = (0, _update2.optimisticUpdateEntities)(optimisticUpdate, initialEntities);
}
var _queryKey = getQueryKey(action);
returnValue = new Promise(function (resolve) {
var start = new Date();
var _options$method2 = _options.method,
method = _options$method2 === void 0 ? _httpMethods["default"].POST : _options$method2;
var networkHandler = networkInterface(_url, method, {
body: _body,
headers: _options.headers,
credentials: _options.credentials
});
networkHandlersByQueryKey[_queryKey] = networkHandler; // Note: only the entities that are included in `optimisticUpdate` will be passed along in the
// `mutateStart` action as `optimisticEntities`
dispatch((0, _actions.mutateStart)({
body: _body,
meta: _meta,
optimisticEntities: optimisticEntities,
queryKey: _queryKey,
url: _url
}));
attempts += 1;
networkHandler.execute((err, status, responseBody, responseText, responseHeaders) => {
if (config.retryableStatusCodes.includes(status) && attempts < config.backoff.maxAttempts) {
// TODO take into account Retry-After header if 503
setTimeout(attemptRequest, backoff.duration());
return;
}
networkHandler.execute(function (err, status, responseBody, responseText, responseHeaders) {
var end = new Date();
var duration = end - start;
var state = getState();
var entities = entitiesSelector(state);
var transformed;
var newEntities;
const end = new Date();
const duration = end - start;
let transformed;
let newEntities;
if (action.unstable_preDispatchCallback) {

@@ -144,16 +272,23 @@ action.unstable_preDispatchCallback();

if (err || !isStatusOK(status)) {
dispatch((0, _actions.requestFailure)({
body,
duration,
meta,
queryKey,
responseBody,
responseHeaders,
status,
responseText,
url
var rolledBackEntities;
if (optimisticUpdate) {
rolledBackEntities = (0, _update2.rollbackEntities)(rollback, (0, _lodash2["default"])(initialEntities, Object.keys(optimisticEntities)), (0, _lodash2["default"])(entities, Object.keys(optimisticEntities)));
}
dispatch((0, _actions.mutateFailure)({
body: _body,
duration: duration,
meta: _meta,
queryKey: _queryKey,
responseBody: responseBody,
responseHeaders: responseHeaders,
status: status,
responseText: responseText,
rolledBackEntities: rolledBackEntities,
url: _url
}));
resolve({
body: responseBody,
duration,
duration: duration,
status: status,

@@ -164,24 +299,22 @@ text: responseText,

} else {
const callbackState = getState();
const entities = entitiesSelector(callbackState);
transformed = transform(responseBody, responseText);
newEntities = (0, _update.updateEntities)(update, entities, transformed);
dispatch((0, _actions.requestSuccess)({
body,
duration,
meta,
transformed = _transform(responseBody, responseText);
newEntities = (0, _update2.updateEntities)(_update, entities, transformed);
dispatch((0, _actions.mutateSuccess)({
url: _url,
body: _body,
duration: duration,
status: status,
entities: newEntities,
queryKey,
responseBody,
responseHeaders,
status,
responseText,
url
queryKey: _queryKey,
responseBody: responseBody,
responseText: responseText,
responseHeaders: responseHeaders,
meta: _meta
}));
resolve({
body: responseBody,
duration,
status,
duration: duration,
status: status,
text: responseText,
transformed,
transformed: transformed,
entities: newEntities,

@@ -191,167 +324,59 @@ headers: responseHeaders

}
delete networkHandlersByQueryKey[_queryKey];
});
};
});
break;
}
attemptRequest();
});
}
case actionTypes.CANCEL_QUERY:
{
var _queryKey2 = action.queryKey;
(0, _invariant["default"])(!!_queryKey2, 'Missing required `queryKey` field in action handler');
break;
}
var _state = getState();
case actionTypes.MUTATE_ASYNC:
{
const {
url,
transform = identity,
update,
rollback,
body,
optimisticUpdate,
options = {},
meta
} = action;
(0, _invariant.default)(!!url, 'Missing required `url` field in action handler');
const initialState = getState();
const initialEntities = entitiesSelector(initialState);
let optimisticEntities;
var _queries = queriesSelector(_state);
if (optimisticUpdate) {
optimisticEntities = (0, _update.optimisticUpdateEntities)(optimisticUpdate, initialEntities);
}
var pendingQueries = getPendingQueries(_queries);
const queryKey = getQueryKey(action);
returnValue = new Promise(resolve => {
const start = new Date();
const {
method = _httpMethods.default.POST
} = options;
const networkHandler = networkInterface(url, method, {
body,
headers: options.headers,
credentials: options.credentials
}); // Note: only the entities that are included in `optimisticUpdate` will be passed along in the
// `mutateStart` action as `optimisticEntities`
if (_queryKey2 in pendingQueries) {
abortQuery(_queryKey2);
returnValue = next(action);
} else {
// eslint-disable-next-line
console.warn('Trying to cancel a request that is not in flight: ', _queryKey2);
returnValue = null;
}
dispatch((0, _actions.mutateStart)({
body,
meta,
networkHandler,
optimisticEntities,
queryKey,
url
}));
networkHandler.execute((err, status, responseBody, responseText, responseHeaders) => {
const end = new Date();
const duration = end - start;
const state = getState();
const entities = entitiesSelector(state);
let transformed;
let newEntities;
break;
}
if (action.unstable_preDispatchCallback) {
action.unstable_preDispatchCallback();
}
case actionTypes.RESET:
{
var _state2 = getState();
if (err || !isStatusOK(status)) {
let rolledBackEntities;
var _queries2 = queriesSelector(_state2);
if (optimisticUpdate) {
rolledBackEntities = (0, _update.rollbackEntities)(rollback, (0, _lodash2.default)(initialEntities, Object.keys(optimisticEntities)), (0, _lodash2.default)(entities, Object.keys(optimisticEntities)));
var _pendingQueries = getPendingQueries(_queries2);
for (var _queryKey3 in _pendingQueries) {
if (_pendingQueries.hasOwnProperty(_queryKey3)) {
abortQuery(_queryKey3);
}
dispatch((0, _actions.mutateFailure)({
body,
duration,
meta,
queryKey,
responseBody,
responseHeaders,
status,
responseText,
rolledBackEntities,
url
}));
resolve({
body: responseBody,
duration,
status,
text: responseText,
headers: responseHeaders
});
} else {
transformed = transform(responseBody, responseText);
newEntities = (0, _update.updateEntities)(update, entities, transformed);
dispatch((0, _actions.mutateSuccess)({
url,
body,
duration,
status,
entities: newEntities,
queryKey,
responseBody,
responseText,
responseHeaders,
meta
}));
resolve({
body: responseBody,
duration,
status,
text: responseText,
transformed,
entities: newEntities,
headers: responseHeaders
});
}
});
});
break;
}
case actionTypes.CANCEL_QUERY:
{
const {
queryKey
} = action;
(0, _invariant.default)(!!queryKey, 'Missing required `queryKey` field in action handler');
const state = getState();
const queries = queriesSelector(state);
const pendingQueries = getPendingQueries(queries);
returnValue = next(action);
break;
}
if (queryKey in pendingQueries) {
pendingQueries[queryKey].networkHandler.abort();
returnValue = next(action);
} else {
// eslint-disable-next-line
console.warn('Trying to cancel a request that is not in flight: ', queryKey);
returnValue = null;
}
break;
}
case actionTypes.RESET:
{
const state = getState();
const queries = queriesSelector(state);
const pendingQueries = getPendingQueries(queries);
for (const queryKey in pendingQueries) {
if (pendingQueries.hasOwnProperty(queryKey)) {
pendingQueries[queryKey].networkHandler.abort();
default:
{
returnValue = next(action);
}
}
returnValue = next(action);
break;
}
default:
{
returnValue = next(action);
}
}
return returnValue;
return returnValue;
};
};
};

@@ -361,2 +386,2 @@ };

var _default = queryMiddleware;
exports.default = _default;
exports["default"] = _default;

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

});
exports.default = void 0;
exports["default"] = void 0;

@@ -17,5 +17,8 @@ var _actionTypes = require("../constants/action-types");

const initialState = {};
var initialState = {};
const entities = (state = initialState, action) => {
var entities = function entities() {
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
var action = arguments.length > 1 ? arguments[1] : undefined;
if (action.type === _actionTypes.RESET) {

@@ -37,2 +40,2 @@ return 'entities' in action ? action.entities : initialState;

var _default = entities;
exports.default = _default;
exports["default"] = _default;

@@ -6,7 +6,7 @@ "use strict";

});
exports.default = void 0;
exports["default"] = void 0;
var actionTypes = _interopRequireWildcard(require("../constants/action-types"));
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 _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; } }

@@ -17,5 +17,8 @@ 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; }

const initialState = {};
var initialState = {};
const queries = (state = initialState, action) => {
var queries = function queries() {
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
var action = arguments.length > 1 ? arguments[1] : undefined;
switch (action.type) {

@@ -30,7 +33,5 @@ case actionTypes.RESET:

{
const {
queryKey
} = action;
var queryKey = action.queryKey;
const newState = _objectSpread({}, state);
var newState = _objectSpread({}, state);

@@ -44,12 +45,8 @@ delete newState[queryKey];

{
const {
queryKey
} = action;
return _objectSpread({}, state, {
[queryKey]: _objectSpread({}, state[queryKey], {
responseBody: action.responseBody,
responseText: action.responseText,
responseHeaders: action.responseHeaders
})
});
var _queryKey = action.queryKey;
return _objectSpread({}, state, _defineProperty({}, _queryKey, _objectSpread({}, state[_queryKey], {
responseBody: action.responseBody,
responseText: action.responseText,
responseHeaders: action.responseHeaders
})));
}

@@ -65,2 +62,2 @@

var _default = queries;
exports.default = _default;
exports["default"] = _default;

@@ -6,7 +6,7 @@ "use strict";

});
exports.default = void 0;
exports["default"] = void 0;
var actionTypes = _interopRequireWildcard(require("../constants/action-types"));
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 _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; } }

@@ -17,5 +17,8 @@ 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; }

const initialState = {};
var initialState = {};
const queries = (state = initialState, action) => {
var queries = function queries() {
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
var action = arguments.length > 1 ? arguments[1] : undefined;
switch (action.type) {

@@ -30,15 +33,10 @@ case actionTypes.RESET:

{
const {
queryKey
} = action;
return _objectSpread({}, state, {
[queryKey]: {
url: action.url,
isFinished: false,
isPending: true,
networkHandler: action.networkHandler,
isMutation: action.type === actionTypes.MUTATE_START,
queryCount: state[queryKey] ? state[queryKey].queryCount + 1 : 1
}
});
var queryKey = action.queryKey;
return _objectSpread({}, state, _defineProperty({}, queryKey, {
url: action.url,
isFinished: false,
isPending: true,
isMutation: action.type === actionTypes.MUTATE_START,
queryCount: state[queryKey] ? state[queryKey].queryCount + 1 : 1
}));
}

@@ -51,14 +49,10 @@

{
const {
queryKey
} = action;
return _objectSpread({}, state, {
[queryKey]: _objectSpread({}, state[queryKey], {
isFinished: true,
isPending: false,
lastUpdated: action.time,
status: action.status,
headers: action.responseHeaders
})
});
var _queryKey = action.queryKey;
return _objectSpread({}, state, _defineProperty({}, _queryKey, _objectSpread({}, state[_queryKey], {
isFinished: true,
isPending: false,
lastUpdated: action.time,
status: action.status,
headers: action.responseHeaders
})));
}

@@ -68,15 +62,11 @@

{
const {
queryKey
} = action;
var _queryKey2 = action.queryKey;
if (state[queryKey].isPending) {
if (state[_queryKey2].isPending) {
// Make sure query is actually pending
return _objectSpread({}, state, {
[queryKey]: _objectSpread({}, state[queryKey], {
isFinished: true,
isPending: false,
status: 0
})
});
return _objectSpread({}, state, _defineProperty({}, _queryKey2, _objectSpread({}, state[_queryKey2], {
isFinished: true,
isPending: false,
status: 0
})));
}

@@ -95,2 +85,2 @@

var _default = queries;
exports.default = _default;
exports["default"] = _default;

@@ -8,13 +8,9 @@ "use strict";

var _lodash = _interopRequireDefault(require("lodash.get"));
var _queryKey = require("../lib/query-key");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var responseBody = function responseBody(errorsState, queryConfig) {
var _ref3;
const responseBody = (errorsState, queryConfig) => {
if (queryConfig) {
const queryKey = (0, _queryKey.getQueryKey)(queryConfig);
return (0, _lodash.default)(errorsState, [queryKey, 'responseBody']);
}
var queryKey = (0, _queryKey.getQueryKey)(queryConfig);
return (_ref3 = errorsState) != null ? (_ref3 = _ref3[queryKey]) != null ? _ref3.responseBody : _ref3 : _ref3;
};

@@ -24,7 +20,7 @@

const responseText = (errorsState, queryConfig) => {
if (queryConfig) {
const queryKey = (0, _queryKey.getQueryKey)(queryConfig);
return (0, _lodash.default)(errorsState, [queryKey, 'responseText']);
}
var responseText = function responseText(errorsState, queryConfig) {
var _ref2;
var queryKey = (0, _queryKey.getQueryKey)(queryConfig);
return (_ref2 = errorsState) != null ? (_ref2 = _ref2[queryKey]) != null ? _ref2.responseText : _ref2 : _ref2;
};

@@ -34,9 +30,9 @@

const responseHeaders = (errorsState, queryConfig) => {
if (queryConfig) {
const queryKey = (0, _queryKey.getQueryKey)(queryConfig);
return (0, _lodash.default)(errorsState, [queryKey, 'responseHeaders']);
}
var responseHeaders = function responseHeaders(errorsState, queryConfig) {
var _ref;
var queryKey = (0, _queryKey.getQueryKey)(queryConfig);
return (_ref = errorsState) != null ? (_ref = _ref[queryKey]) != null ? _ref.responseHeaders : _ref : _ref;
};
exports.responseHeaders = responseHeaders;

@@ -8,13 +8,9 @@ "use strict";

var _lodash = _interopRequireDefault(require("lodash.get"));
var _queryKey = require("../lib/query-key");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var isFinished = function isFinished(queriesState, queryConfig) {
var _ref6;
const isFinished = (queriesState, queryConfig) => {
if (queryConfig) {
const queryKey = (0, _queryKey.getQueryKey)(queryConfig);
return (0, _lodash.default)(queriesState, [queryKey, 'isFinished']);
}
var queryKey = (0, _queryKey.getQueryKey)(queryConfig);
return ((_ref6 = queriesState) != null ? (_ref6 = _ref6[queryKey]) != null ? _ref6.isFinished : _ref6 : _ref6) || false;
};

@@ -24,7 +20,7 @@

const isPending = (queriesState, queryConfig) => {
if (queryConfig) {
const queryKey = (0, _queryKey.getQueryKey)(queryConfig);
return (0, _lodash.default)(queriesState, [queryKey, 'isPending']);
}
var isPending = function isPending(queriesState, queryConfig) {
var _ref5;
var queryKey = (0, _queryKey.getQueryKey)(queryConfig);
return ((_ref5 = queriesState) != null ? (_ref5 = _ref5[queryKey]) != null ? _ref5.isPending : _ref5 : _ref5) || false;
};

@@ -34,7 +30,7 @@

const status = (queriesState, queryConfig) => {
if (queryConfig) {
const queryKey = (0, _queryKey.getQueryKey)(queryConfig);
return (0, _lodash.default)(queriesState, [queryKey, 'status']);
}
var status = function status(queriesState, queryConfig) {
var _ref4;
var queryKey = (0, _queryKey.getQueryKey)(queryConfig);
return (_ref4 = queriesState) != null ? (_ref4 = _ref4[queryKey]) != null ? _ref4.status : _ref4 : _ref4;
};

@@ -44,7 +40,7 @@

const headers = (queriesState, queryConfig) => {
if (queryConfig) {
const queryKey = (0, _queryKey.getQueryKey)(queryConfig);
return (0, _lodash.default)(queriesState, [queryKey, 'headers']);
}
var headers = function headers(queriesState, queryConfig) {
var _ref3;
var queryKey = (0, _queryKey.getQueryKey)(queryConfig);
return (_ref3 = queriesState) != null ? (_ref3 = _ref3[queryKey]) != null ? _ref3.headers : _ref3 : _ref3;
};

@@ -54,7 +50,7 @@

const lastUpdated = (queriesState, queryConfig) => {
if (queryConfig) {
const queryKey = (0, _queryKey.getQueryKey)(queryConfig);
return (0, _lodash.default)(queriesState, [queryKey, 'lastUpdated']);
}
var lastUpdated = function lastUpdated(queriesState, queryConfig) {
var _ref2;
var queryKey = (0, _queryKey.getQueryKey)(queryConfig);
return (_ref2 = queriesState) != null ? (_ref2 = _ref2[queryKey]) != null ? _ref2.lastUpdated : _ref2 : _ref2;
};

@@ -64,9 +60,9 @@

const queryCount = (queriesState, queryConfig) => {
if (queryConfig) {
const queryKey = (0, _queryKey.getQueryKey)(queryConfig);
return (0, _lodash.default)(queriesState, [queryKey, 'queryCount']);
}
var queryCount = function queryCount(queriesState, queryConfig) {
var _ref;
var queryKey = (0, _queryKey.getQueryKey)(queryConfig);
return ((_ref = queriesState) != null ? (_ref = _ref[queryKey]) != null ? _ref.queryCount : _ref : _ref) || 0;
};
exports.queryCount = queryCount;

@@ -10,18 +10,15 @@ "use strict";

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 _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; } }
const requestStart = ({
body,
meta,
networkHandler,
queryKey,
url
}) => {
var requestStart = function requestStart(_ref) {
var body = _ref.body,
meta = _ref.meta,
queryKey = _ref.queryKey,
url = _ref.url;
return {
type: actionTypes.REQUEST_START,
url,
body,
networkHandler,
meta,
queryKey
url: url,
body: body,
meta: meta,
queryKey: queryKey
};

@@ -32,26 +29,25 @@ };

const requestSuccess = ({
body,
duration,
entities,
meta,
queryKey,
responseBody,
responseHeaders,
responseText,
status,
url
}) => {
var requestSuccess = function requestSuccess(_ref2) {
var body = _ref2.body,
duration = _ref2.duration,
entities = _ref2.entities,
meta = _ref2.meta,
queryKey = _ref2.queryKey,
responseBody = _ref2.responseBody,
responseHeaders = _ref2.responseHeaders,
responseText = _ref2.responseText,
status = _ref2.status,
url = _ref2.url;
return {
type: actionTypes.REQUEST_SUCCESS,
url,
body,
duration,
status,
entities,
responseBody,
responseText,
responseHeaders,
meta,
queryKey,
url: url,
body: body,
duration: duration,
status: status,
entities: entities,
responseBody: responseBody,
responseText: responseText,
responseHeaders: responseHeaders,
meta: meta,
queryKey: queryKey,
time: Date.now()

@@ -63,24 +59,23 @@ };

const requestFailure = ({
body,
duration,
meta,
queryKey,
responseBody,
responseHeaders,
responseText,
status,
url
}) => {
var requestFailure = function requestFailure(_ref3) {
var body = _ref3.body,
duration = _ref3.duration,
meta = _ref3.meta,
queryKey = _ref3.queryKey,
responseBody = _ref3.responseBody,
responseHeaders = _ref3.responseHeaders,
responseText = _ref3.responseText,
status = _ref3.status,
url = _ref3.url;
return {
type: actionTypes.REQUEST_FAILURE,
url,
body,
duration,
status,
responseBody,
responseText,
responseHeaders,
meta,
queryKey,
url: url,
body: body,
duration: duration,
status: status,
responseBody: responseBody,
responseText: responseText,
responseHeaders: responseHeaders,
meta: meta,
queryKey: queryKey,
time: Date.now()

@@ -92,18 +87,15 @@ };

const mutateStart = ({
body,
meta,
networkHandler,
optimisticEntities,
queryKey,
url
}) => {
var mutateStart = function mutateStart(_ref4) {
var body = _ref4.body,
meta = _ref4.meta,
optimisticEntities = _ref4.optimisticEntities,
queryKey = _ref4.queryKey,
url = _ref4.url;
return {
type: actionTypes.MUTATE_START,
url,
body,
networkHandler,
optimisticEntities,
queryKey,
meta
url: url,
body: body,
optimisticEntities: optimisticEntities,
queryKey: queryKey,
meta: meta
};

@@ -114,27 +106,26 @@ };

const mutateSuccess = ({
body,
duration,
entities,
meta,
queryKey,
responseBody,
responseHeaders,
responseText,
status,
url
}) => {
var mutateSuccess = function mutateSuccess(_ref5) {
var body = _ref5.body,
duration = _ref5.duration,
entities = _ref5.entities,
meta = _ref5.meta,
queryKey = _ref5.queryKey,
responseBody = _ref5.responseBody,
responseHeaders = _ref5.responseHeaders,
responseText = _ref5.responseText,
status = _ref5.status,
url = _ref5.url;
return {
type: actionTypes.MUTATE_SUCCESS,
url,
body,
duration,
status,
responseBody,
responseText,
responseHeaders,
entities,
queryKey,
url: url,
body: body,
duration: duration,
status: status,
responseBody: responseBody,
responseText: responseText,
responseHeaders: responseHeaders,
entities: entities,
queryKey: queryKey,
time: Date.now(),
meta
meta: meta
};

@@ -145,27 +136,26 @@ };

const mutateFailure = ({
body,
duration,
meta,
queryKey,
responseBody,
responseHeaders,
responseText,
rolledBackEntities,
status,
url
}) => {
var mutateFailure = function mutateFailure(_ref6) {
var body = _ref6.body,
duration = _ref6.duration,
meta = _ref6.meta,
queryKey = _ref6.queryKey,
responseBody = _ref6.responseBody,
responseHeaders = _ref6.responseHeaders,
responseText = _ref6.responseText,
rolledBackEntities = _ref6.rolledBackEntities,
status = _ref6.status,
url = _ref6.url;
return {
type: actionTypes.MUTATE_FAILURE,
url,
body,
duration,
status,
responseBody,
responseText,
responseHeaders,
rolledBackEntities,
queryKey,
url: url,
body: body,
duration: duration,
status: status,
responseBody: responseBody,
responseText: responseText,
responseHeaders: responseHeaders,
rolledBackEntities: rolledBackEntities,
queryKey: queryKey,
time: Date.now(),
meta
meta: meta
};

@@ -176,28 +166,25 @@ };

const requestAsync = ({
body,
force,
meta,
options,
queryKey,
retry,
transform,
update,
url,
/* eslint-disable-next-line camelcase */
unstable_preDispatchCallback
}) => {
var requestAsync = function requestAsync(_ref7) {
var body = _ref7.body,
force = _ref7.force,
meta = _ref7.meta,
options = _ref7.options,
queryKey = _ref7.queryKey,
retry = _ref7.retry,
transform = _ref7.transform,
update = _ref7.update,
url = _ref7.url,
unstable_preDispatchCallback = _ref7.unstable_preDispatchCallback;
return {
type: actionTypes.REQUEST_ASYNC,
body,
force,
queryKey,
meta,
options,
retry,
transform,
update,
url,
unstable_preDispatchCallback
body: body,
force: force,
queryKey: queryKey,
meta: meta,
options: options,
retry: retry,
transform: transform,
update: update,
url: url,
unstable_preDispatchCallback: unstable_preDispatchCallback
};

@@ -208,24 +195,23 @@ };

const mutateAsync = ({
body,
meta,
optimisticUpdate,
options,
queryKey,
rollback,
transform,
update,
url
}) => {
var mutateAsync = function mutateAsync(_ref8) {
var body = _ref8.body,
meta = _ref8.meta,
optimisticUpdate = _ref8.optimisticUpdate,
options = _ref8.options,
queryKey = _ref8.queryKey,
rollback = _ref8.rollback,
transform = _ref8.transform,
update = _ref8.update,
url = _ref8.url;
return {
type: actionTypes.MUTATE_ASYNC,
body,
meta,
optimisticUpdate,
options,
queryKey,
rollback,
transform,
update,
url
body: body,
meta: meta,
optimisticUpdate: optimisticUpdate,
options: options,
queryKey: queryKey,
rollback: rollback,
transform: transform,
update: update,
url: url
};

@@ -236,6 +222,6 @@ };

const cancelQuery = queryKey => {
var cancelQuery = function cancelQuery(queryKey) {
return {
type: actionTypes.CANCEL_QUERY,
queryKey
queryKey: queryKey
};

@@ -246,6 +232,6 @@ };

const updateEntities = update => {
var updateEntities = function updateEntities(update) {
return {
type: actionTypes.UPDATE_ENTITIES,
update
update: update
};

@@ -252,0 +238,0 @@ };

@@ -7,23 +7,23 @@ "use strict";

exports.UPDATE_ENTITIES = exports.RESET = exports.MUTATE_FAILURE = exports.MUTATE_SUCCESS = exports.MUTATE_START = exports.MUTATE_ASYNC = exports.CANCEL_QUERY = exports.REQUEST_FAILURE = exports.REQUEST_SUCCESS = exports.REQUEST_START = exports.REQUEST_ASYNC = void 0;
const REQUEST_ASYNC = '@@query/REQUEST_ASYNC';
var REQUEST_ASYNC = '@@query/REQUEST_ASYNC';
exports.REQUEST_ASYNC = REQUEST_ASYNC;
const REQUEST_START = '@@query/REQUEST_START';
var REQUEST_START = '@@query/REQUEST_START';
exports.REQUEST_START = REQUEST_START;
const REQUEST_SUCCESS = '@@query/REQUEST_SUCCESS';
var REQUEST_SUCCESS = '@@query/REQUEST_SUCCESS';
exports.REQUEST_SUCCESS = REQUEST_SUCCESS;
const REQUEST_FAILURE = '@@query/REQUEST_FAILURE';
var REQUEST_FAILURE = '@@query/REQUEST_FAILURE';
exports.REQUEST_FAILURE = REQUEST_FAILURE;
const CANCEL_QUERY = '@@query/CANCEL_QUERY';
var CANCEL_QUERY = '@@query/CANCEL_QUERY';
exports.CANCEL_QUERY = CANCEL_QUERY;
const MUTATE_ASYNC = '@@query/MUTATE_ASYNC';
var MUTATE_ASYNC = '@@query/MUTATE_ASYNC';
exports.MUTATE_ASYNC = MUTATE_ASYNC;
const MUTATE_START = '@@query/MUTATE_START';
var MUTATE_START = '@@query/MUTATE_START';
exports.MUTATE_START = MUTATE_START;
const MUTATE_SUCCESS = '@@query/MUTATE_SUCCESS';
var MUTATE_SUCCESS = '@@query/MUTATE_SUCCESS';
exports.MUTATE_SUCCESS = MUTATE_SUCCESS;
const MUTATE_FAILURE = '@@query/MUTATE_FAILURE';
var MUTATE_FAILURE = '@@query/MUTATE_FAILURE';
exports.MUTATE_FAILURE = MUTATE_FAILURE;
const RESET = '@@query/RESET';
var RESET = '@@query/RESET';
exports.RESET = RESET;
const UPDATE_ENTITIES = '@@query/UPDATE_ENTITIES';
var UPDATE_ENTITIES = '@@query/UPDATE_ENTITIES';
exports.UPDATE_ENTITIES = UPDATE_ENTITIES;

@@ -6,4 +6,4 @@ "use strict";

});
exports.default = void 0;
var _default = {
exports["default"] = void 0;
var HttpMethods = {
DELETE: 'DELETE',

@@ -16,2 +16,3 @@ GET: 'GET',

};
exports.default = _default;
var _default = HttpMethods;
exports["default"] = _default;

@@ -7,12 +7,12 @@ "use strict";

exports.GATEWAY_TIMEOUT = exports.SERVICE_UNAVAILABLE = exports.TOO_MANY_REQUESTS = exports.REQUEST_TIMEOUT = exports.UNKNOWN = void 0;
const UNKNOWN = 0;
var UNKNOWN = 0;
exports.UNKNOWN = UNKNOWN;
const REQUEST_TIMEOUT = 408; // client took too long
var REQUEST_TIMEOUT = 408; // client took too long
exports.REQUEST_TIMEOUT = REQUEST_TIMEOUT;
const TOO_MANY_REQUESTS = 429;
var TOO_MANY_REQUESTS = 429;
exports.TOO_MANY_REQUESTS = TOO_MANY_REQUESTS;
const SERVICE_UNAVAILABLE = 503;
var SERVICE_UNAVAILABLE = 503;
exports.SERVICE_UNAVAILABLE = SERVICE_UNAVAILABLE;
const GATEWAY_TIMEOUT = 504;
var GATEWAY_TIMEOUT = 504;
exports.GATEWAY_TIMEOUT = GATEWAY_TIMEOUT;

@@ -8,4 +8,4 @@ "use strict";

enumerable: true,
get: function () {
return _httpMethods.default;
get: function get() {
return _httpMethods["default"];
}

@@ -15,3 +15,3 @@ });

enumerable: true,
get: function () {
get: function get() {
return _queryKey.getQueryKey;

@@ -22,4 +22,4 @@ }

enumerable: true,
get: function () {
return _queries.default;
get: function get() {
return _queries["default"];
}

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

enumerable: true,
get: function () {
return _entities.default;
get: function get() {
return _entities["default"];
}

@@ -36,4 +36,4 @@ });

enumerable: true,
get: function () {
return _errors.default;
get: function get() {
return _errors["default"];
}

@@ -43,4 +43,4 @@ });

enumerable: true,
get: function () {
return _query2.default;
get: function get() {
return _query2["default"];
}

@@ -50,3 +50,3 @@ });

enumerable: true,
get: function () {
get: function get() {
return _actions.cancelQuery;

@@ -57,3 +57,3 @@ }

enumerable: true,
get: function () {
get: function get() {
return _actions.mutateAsync;

@@ -64,3 +64,3 @@ }

enumerable: true,
get: function () {
get: function get() {
return _actions.requestAsync;

@@ -71,3 +71,3 @@ }

enumerable: true,
get: function () {
get: function get() {
return _actions.updateEntities;

@@ -104,4 +104,4 @@ }

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
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 _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; } }

@@ -10,5 +10,5 @@ "use strict";

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
const getQueryKey = queryConfig => {
var getQueryKey = function getQueryKey(queryConfig) {
if (!queryConfig) {

@@ -18,7 +18,5 @@ return null;

const {
url,
body,
queryKey
} = queryConfig;
var url = queryConfig.url,
body = queryConfig.body,
queryKey = queryConfig.queryKey;

@@ -28,5 +26,5 @@ if (queryKey !== null && queryKey !== undefined) {

} else {
return (0, _jsonStableStringify.default)({
url,
body
return (0, _jsonStableStringify["default"])({
url: url,
body: body
});

@@ -33,0 +31,0 @@ }

@@ -8,5 +8,5 @@ "use strict";

const updateEntities = (update, entities, transformed) => {
var updateEntities = function updateEntities(update, entities, transformed) {
// If update is not supplied, then no change to entities will be made
return Object.keys(update || {}).reduce((accum, key) => {
return Object.keys(update || {}).reduce(function (accum, key) {
accum[key] = update[key]((entities || {})[key], (transformed || {})[key]);

@@ -19,4 +19,4 @@ return accum;

const optimisticUpdateEntities = (optimisticUpdate, entities) => {
return Object.keys(optimisticUpdate).reduce((accum, key) => {
var optimisticUpdateEntities = function optimisticUpdateEntities(optimisticUpdate, entities) {
return Object.keys(optimisticUpdate).reduce(function (accum, key) {
accum[key] = optimisticUpdate[key](entities[key]);

@@ -29,4 +29,7 @@ return accum;

const rollbackEntities = (rollback = {}, initialEntities, entities) => {
return Object.keys(initialEntities).reduce((accum, key) => {
var rollbackEntities = function rollbackEntities() {
var rollback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var initialEntities = arguments.length > 1 ? arguments[1] : undefined;
var entities = arguments.length > 2 ? arguments[2] : undefined;
return Object.keys(initialEntities).reduce(function (accum, key) {
if (rollback[key]) {

@@ -33,0 +36,0 @@ accum[key] = rollback[key](initialEntities[key], entities[key]);

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

});
exports.default = void 0;
exports["default"] = void 0;

@@ -27,9 +27,9 @@ var _backo = _interopRequireDefault(require("backo"));

var _queryKey = require("../lib/query-key");
var _queryKey4 = require("../lib/query-key");
var _update = require("../lib/update");
var _update2 = require("../lib/update");
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 _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 _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }

@@ -44,3 +44,3 @@ 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; }

const defaultConfig = {
var defaultConfig = {
backoff: {

@@ -54,86 +54,214 @@ maxAttempts: 5,

statusCodes.SERVICE_UNAVAILABLE, statusCodes.GATEWAY_TIMEOUT],
getQueryKey: _queryKey.getQueryKey
getQueryKey: _queryKey4.getQueryKey
};
const getPendingQueries = queries => {
return (0, _lodash3.default)(queries, query => query.isPending);
var getPendingQueries = function getPendingQueries(queries) {
return (0, _lodash3["default"])(queries, function (query) {
return query.isPending;
});
};
const isStatusOK = status => status >= 200 && status < 300;
var isStatusOK = function isStatusOK(status) {
return status >= 200 && status < 300;
};
const identity = x => x;
var identity = function identity(x) {
return x;
};
const queryMiddleware = (networkInterface, queriesSelector, entitiesSelector, customConfig) => {
return ({
dispatch,
getState
}) => next => action => {
let returnValue;
var queryMiddleware = function queryMiddleware(networkInterface, queriesSelector, entitiesSelector, customConfig) {
var networkHandlersByQueryKey = {};
const _defaultConfig$custom = _objectSpread({}, defaultConfig, customConfig),
{
getQueryKey
} = _defaultConfig$custom,
config = _objectWithoutProperties(_defaultConfig$custom, ["getQueryKey"]);
var abortQuery = function abortQuery(queryKey) {
var networkHandler = networkHandlersByQueryKey[queryKey];
switch (action.type) {
case actionTypes.REQUEST_ASYNC:
{
const {
url,
body,
force,
retry,
transform = identity,
update,
options = {},
meta
} = action;
(0, _invariant.default)(!!url, 'Missing required `url` field in action handler');
const queryKey = getQueryKey(action);
const state = getState();
const queries = queriesSelector(state);
const queriesState = queries[queryKey];
const isPending = (0, _lodash.default)(queriesState, ['isPending']);
const status = (0, _lodash.default)(queriesState, ['status']);
const hasSucceeded = isStatusOK(status);
if (networkHandler) {
networkHandler.abort();
delete networkHandlersByQueryKey[queryKey];
}
};
if (force || !queriesState || retry && !isPending && !hasSucceeded) {
returnValue = new Promise(resolve => {
const start = new Date();
const {
method = _httpMethods.default.GET
} = options;
let attempts = 0;
const backoff = new _backo.default({
min: config.backoff.minDuration,
max: config.backoff.maxDuration
});
return function (_ref) {
var dispatch = _ref.dispatch,
getState = _ref.getState;
return function (next) {
return function (action) {
var returnValue;
const attemptRequest = () => {
const networkHandler = networkInterface(url, method, {
body,
headers: options.headers,
credentials: options.credentials
var _defaultConfig$custom = _objectSpread({}, defaultConfig, customConfig),
getQueryKey = _defaultConfig$custom.getQueryKey,
config = _objectWithoutProperties(_defaultConfig$custom, ["getQueryKey"]);
switch (action.type) {
case actionTypes.REQUEST_ASYNC:
{
var url = action.url,
body = action.body,
force = action.force,
retry = action.retry,
_action$transform = action.transform,
transform = _action$transform === void 0 ? identity : _action$transform,
update = action.update,
_action$options = action.options,
options = _action$options === void 0 ? {} : _action$options,
meta = action.meta;
(0, _invariant["default"])(!!url, 'Missing required `url` field in action handler');
var queryKey = getQueryKey(action);
var state = getState();
var queries = queriesSelector(state);
var queriesState = queries[queryKey];
var isPending = (0, _lodash["default"])(queriesState, ['isPending']);
var status = (0, _lodash["default"])(queriesState, ['status']);
var hasSucceeded = isStatusOK(status);
if (force || !queriesState || retry && !isPending && !hasSucceeded) {
returnValue = new Promise(function (resolve) {
var start = new Date();
var _options$method = options.method,
method = _options$method === void 0 ? _httpMethods["default"].GET : _options$method;
var attempts = 0;
var backoff = new _backo["default"]({
min: config.backoff.minDuration,
max: config.backoff.maxDuration
});
var attemptRequest = function attemptRequest() {
var networkHandler = networkInterface(url, method, {
body: body,
headers: options.headers,
credentials: options.credentials
});
networkHandlersByQueryKey[queryKey] = networkHandler;
dispatch((0, _actions.requestStart)({
body: body,
meta: meta,
queryKey: queryKey,
url: url
}));
attempts += 1;
networkHandler.execute(function (err, status, responseBody, responseText, responseHeaders) {
if (config.retryableStatusCodes.includes(status) && attempts < config.backoff.maxAttempts) {
// TODO take into account Retry-After header if 503
setTimeout(attemptRequest, backoff.duration());
return;
}
var end = new Date();
var duration = end - start;
var transformed;
var newEntities;
if (action.unstable_preDispatchCallback) {
action.unstable_preDispatchCallback();
}
if (err || !isStatusOK(status)) {
dispatch((0, _actions.requestFailure)({
body: body,
duration: duration,
meta: meta,
queryKey: queryKey,
responseBody: responseBody,
responseHeaders: responseHeaders,
status: status,
responseText: responseText,
url: url
}));
resolve({
body: responseBody,
duration: duration,
status: status,
text: responseText,
headers: responseHeaders
});
} else {
var callbackState = getState();
var entities = entitiesSelector(callbackState);
transformed = transform(responseBody, responseText);
newEntities = (0, _update2.updateEntities)(update, entities, transformed);
dispatch((0, _actions.requestSuccess)({
body: body,
duration: duration,
meta: meta,
entities: newEntities,
queryKey: queryKey,
responseBody: responseBody,
responseHeaders: responseHeaders,
status: status,
responseText: responseText,
url: url
}));
resolve({
body: responseBody,
duration: duration,
status: status,
text: responseText,
transformed: transformed,
entities: newEntities,
headers: responseHeaders
});
}
delete networkHandlersByQueryKey[queryKey];
});
};
attemptRequest();
});
dispatch((0, _actions.requestStart)({
body,
meta,
networkHandler,
queryKey,
url
}
break;
}
case actionTypes.MUTATE_ASYNC:
{
var _url = action.url,
_action$transform2 = action.transform,
_transform = _action$transform2 === void 0 ? identity : _action$transform2,
_update = action.update,
rollback = action.rollback,
_body = action.body,
optimisticUpdate = action.optimisticUpdate,
_action$options2 = action.options,
_options = _action$options2 === void 0 ? {} : _action$options2,
_meta = action.meta;
(0, _invariant["default"])(!!_url, 'Missing required `url` field in action handler');
var initialState = getState();
var initialEntities = entitiesSelector(initialState);
var optimisticEntities;
if (optimisticUpdate) {
optimisticEntities = (0, _update2.optimisticUpdateEntities)(optimisticUpdate, initialEntities);
}
var _queryKey = getQueryKey(action);
returnValue = new Promise(function (resolve) {
var start = new Date();
var _options$method2 = _options.method,
method = _options$method2 === void 0 ? _httpMethods["default"].POST : _options$method2;
var networkHandler = networkInterface(_url, method, {
body: _body,
headers: _options.headers,
credentials: _options.credentials
});
networkHandlersByQueryKey[_queryKey] = networkHandler; // Note: only the entities that are included in `optimisticUpdate` will be passed along in the
// `mutateStart` action as `optimisticEntities`
dispatch((0, _actions.mutateStart)({
body: _body,
meta: _meta,
optimisticEntities: optimisticEntities,
queryKey: _queryKey,
url: _url
}));
attempts += 1;
networkHandler.execute((err, status, responseBody, responseText, responseHeaders) => {
if (config.retryableStatusCodes.includes(status) && attempts < config.backoff.maxAttempts) {
// TODO take into account Retry-After header if 503
setTimeout(attemptRequest, backoff.duration());
return;
}
networkHandler.execute(function (err, status, responseBody, responseText, responseHeaders) {
var end = new Date();
var duration = end - start;
var state = getState();
var entities = entitiesSelector(state);
var transformed;
var newEntities;
const end = new Date();
const duration = end - start;
let transformed;
let newEntities;
if (action.unstable_preDispatchCallback) {

@@ -144,16 +272,23 @@ action.unstable_preDispatchCallback();

if (err || !isStatusOK(status)) {
dispatch((0, _actions.requestFailure)({
body,
duration,
meta,
queryKey,
responseBody,
responseHeaders,
status,
responseText,
url
var rolledBackEntities;
if (optimisticUpdate) {
rolledBackEntities = (0, _update2.rollbackEntities)(rollback, (0, _lodash2["default"])(initialEntities, Object.keys(optimisticEntities)), (0, _lodash2["default"])(entities, Object.keys(optimisticEntities)));
}
dispatch((0, _actions.mutateFailure)({
body: _body,
duration: duration,
meta: _meta,
queryKey: _queryKey,
responseBody: responseBody,
responseHeaders: responseHeaders,
status: status,
responseText: responseText,
rolledBackEntities: rolledBackEntities,
url: _url
}));
resolve({
body: responseBody,
duration,
duration: duration,
status: status,

@@ -164,24 +299,22 @@ text: responseText,

} else {
const callbackState = getState();
const entities = entitiesSelector(callbackState);
transformed = transform(responseBody, responseText);
newEntities = (0, _update.updateEntities)(update, entities, transformed);
dispatch((0, _actions.requestSuccess)({
body,
duration,
meta,
transformed = _transform(responseBody, responseText);
newEntities = (0, _update2.updateEntities)(_update, entities, transformed);
dispatch((0, _actions.mutateSuccess)({
url: _url,
body: _body,
duration: duration,
status: status,
entities: newEntities,
queryKey,
responseBody,
responseHeaders,
status,
responseText,
url
queryKey: _queryKey,
responseBody: responseBody,
responseText: responseText,
responseHeaders: responseHeaders,
meta: _meta
}));
resolve({
body: responseBody,
duration,
status,
duration: duration,
status: status,
text: responseText,
transformed,
transformed: transformed,
entities: newEntities,

@@ -191,167 +324,59 @@ headers: responseHeaders

}
delete networkHandlersByQueryKey[_queryKey];
});
};
});
break;
}
attemptRequest();
});
}
case actionTypes.CANCEL_QUERY:
{
var _queryKey2 = action.queryKey;
(0, _invariant["default"])(!!_queryKey2, 'Missing required `queryKey` field in action handler');
break;
}
var _state = getState();
case actionTypes.MUTATE_ASYNC:
{
const {
url,
transform = identity,
update,
rollback,
body,
optimisticUpdate,
options = {},
meta
} = action;
(0, _invariant.default)(!!url, 'Missing required `url` field in action handler');
const initialState = getState();
const initialEntities = entitiesSelector(initialState);
let optimisticEntities;
var _queries = queriesSelector(_state);
if (optimisticUpdate) {
optimisticEntities = (0, _update.optimisticUpdateEntities)(optimisticUpdate, initialEntities);
}
var pendingQueries = getPendingQueries(_queries);
const queryKey = getQueryKey(action);
returnValue = new Promise(resolve => {
const start = new Date();
const {
method = _httpMethods.default.POST
} = options;
const networkHandler = networkInterface(url, method, {
body,
headers: options.headers,
credentials: options.credentials
}); // Note: only the entities that are included in `optimisticUpdate` will be passed along in the
// `mutateStart` action as `optimisticEntities`
if (_queryKey2 in pendingQueries) {
abortQuery(_queryKey2);
returnValue = next(action);
} else {
// eslint-disable-next-line
console.warn('Trying to cancel a request that is not in flight: ', _queryKey2);
returnValue = null;
}
dispatch((0, _actions.mutateStart)({
body,
meta,
networkHandler,
optimisticEntities,
queryKey,
url
}));
networkHandler.execute((err, status, responseBody, responseText, responseHeaders) => {
const end = new Date();
const duration = end - start;
const state = getState();
const entities = entitiesSelector(state);
let transformed;
let newEntities;
break;
}
if (action.unstable_preDispatchCallback) {
action.unstable_preDispatchCallback();
}
case actionTypes.RESET:
{
var _state2 = getState();
if (err || !isStatusOK(status)) {
let rolledBackEntities;
var _queries2 = queriesSelector(_state2);
if (optimisticUpdate) {
rolledBackEntities = (0, _update.rollbackEntities)(rollback, (0, _lodash2.default)(initialEntities, Object.keys(optimisticEntities)), (0, _lodash2.default)(entities, Object.keys(optimisticEntities)));
var _pendingQueries = getPendingQueries(_queries2);
for (var _queryKey3 in _pendingQueries) {
if (_pendingQueries.hasOwnProperty(_queryKey3)) {
abortQuery(_queryKey3);
}
dispatch((0, _actions.mutateFailure)({
body,
duration,
meta,
queryKey,
responseBody,
responseHeaders,
status,
responseText,
rolledBackEntities,
url
}));
resolve({
body: responseBody,
duration,
status,
text: responseText,
headers: responseHeaders
});
} else {
transformed = transform(responseBody, responseText);
newEntities = (0, _update.updateEntities)(update, entities, transformed);
dispatch((0, _actions.mutateSuccess)({
url,
body,
duration,
status,
entities: newEntities,
queryKey,
responseBody,
responseText,
responseHeaders,
meta
}));
resolve({
body: responseBody,
duration,
status,
text: responseText,
transformed,
entities: newEntities,
headers: responseHeaders
});
}
});
});
break;
}
case actionTypes.CANCEL_QUERY:
{
const {
queryKey
} = action;
(0, _invariant.default)(!!queryKey, 'Missing required `queryKey` field in action handler');
const state = getState();
const queries = queriesSelector(state);
const pendingQueries = getPendingQueries(queries);
returnValue = next(action);
break;
}
if (queryKey in pendingQueries) {
pendingQueries[queryKey].networkHandler.abort();
returnValue = next(action);
} else {
// eslint-disable-next-line
console.warn('Trying to cancel a request that is not in flight: ', queryKey);
returnValue = null;
}
break;
}
case actionTypes.RESET:
{
const state = getState();
const queries = queriesSelector(state);
const pendingQueries = getPendingQueries(queries);
for (const queryKey in pendingQueries) {
if (pendingQueries.hasOwnProperty(queryKey)) {
pendingQueries[queryKey].networkHandler.abort();
default:
{
returnValue = next(action);
}
}
returnValue = next(action);
break;
}
default:
{
returnValue = next(action);
}
}
return returnValue;
return returnValue;
};
};
};

@@ -361,2 +386,2 @@ };

var _default = queryMiddleware;
exports.default = _default;
exports["default"] = _default;

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

});
exports.default = void 0;
exports["default"] = void 0;

@@ -17,5 +17,8 @@ var _actionTypes = require("../constants/action-types");

const initialState = {};
var initialState = {};
const entities = (state = initialState, action) => {
var entities = function entities() {
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
var action = arguments.length > 1 ? arguments[1] : undefined;
if (action.type === _actionTypes.RESET) {

@@ -37,2 +40,2 @@ return 'entities' in action ? action.entities : initialState;

var _default = entities;
exports.default = _default;
exports["default"] = _default;

@@ -6,7 +6,7 @@ "use strict";

});
exports.default = void 0;
exports["default"] = void 0;
var actionTypes = _interopRequireWildcard(require("../constants/action-types"));
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 _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; } }

@@ -17,5 +17,8 @@ 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; }

const initialState = {};
var initialState = {};
const queries = (state = initialState, action) => {
var queries = function queries() {
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
var action = arguments.length > 1 ? arguments[1] : undefined;
switch (action.type) {

@@ -30,7 +33,5 @@ case actionTypes.RESET:

{
const {
queryKey
} = action;
var queryKey = action.queryKey;
const newState = _objectSpread({}, state);
var newState = _objectSpread({}, state);

@@ -44,12 +45,8 @@ delete newState[queryKey];

{
const {
queryKey
} = action;
return _objectSpread({}, state, {
[queryKey]: _objectSpread({}, state[queryKey], {
responseBody: action.responseBody,
responseText: action.responseText,
responseHeaders: action.responseHeaders
})
});
var _queryKey = action.queryKey;
return _objectSpread({}, state, _defineProperty({}, _queryKey, _objectSpread({}, state[_queryKey], {
responseBody: action.responseBody,
responseText: action.responseText,
responseHeaders: action.responseHeaders
})));
}

@@ -65,2 +62,2 @@

var _default = queries;
exports.default = _default;
exports["default"] = _default;

@@ -6,7 +6,7 @@ "use strict";

});
exports.default = void 0;
exports["default"] = void 0;
var actionTypes = _interopRequireWildcard(require("../constants/action-types"));
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 _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; } }

@@ -17,5 +17,8 @@ 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; }

const initialState = {};
var initialState = {};
const queries = (state = initialState, action) => {
var queries = function queries() {
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
var action = arguments.length > 1 ? arguments[1] : undefined;
switch (action.type) {

@@ -30,15 +33,10 @@ case actionTypes.RESET:

{
const {
queryKey
} = action;
return _objectSpread({}, state, {
[queryKey]: {
url: action.url,
isFinished: false,
isPending: true,
networkHandler: action.networkHandler,
isMutation: action.type === actionTypes.MUTATE_START,
queryCount: state[queryKey] ? state[queryKey].queryCount + 1 : 1
}
});
var queryKey = action.queryKey;
return _objectSpread({}, state, _defineProperty({}, queryKey, {
url: action.url,
isFinished: false,
isPending: true,
isMutation: action.type === actionTypes.MUTATE_START,
queryCount: state[queryKey] ? state[queryKey].queryCount + 1 : 1
}));
}

@@ -51,14 +49,10 @@

{
const {
queryKey
} = action;
return _objectSpread({}, state, {
[queryKey]: _objectSpread({}, state[queryKey], {
isFinished: true,
isPending: false,
lastUpdated: action.time,
status: action.status,
headers: action.responseHeaders
})
});
var _queryKey = action.queryKey;
return _objectSpread({}, state, _defineProperty({}, _queryKey, _objectSpread({}, state[_queryKey], {
isFinished: true,
isPending: false,
lastUpdated: action.time,
status: action.status,
headers: action.responseHeaders
})));
}

@@ -68,15 +62,11 @@

{
const {
queryKey
} = action;
var _queryKey2 = action.queryKey;
if (state[queryKey].isPending) {
if (state[_queryKey2].isPending) {
// Make sure query is actually pending
return _objectSpread({}, state, {
[queryKey]: _objectSpread({}, state[queryKey], {
isFinished: true,
isPending: false,
status: 0
})
});
return _objectSpread({}, state, _defineProperty({}, _queryKey2, _objectSpread({}, state[_queryKey2], {
isFinished: true,
isPending: false,
status: 0
})));
}

@@ -95,2 +85,2 @@

var _default = queries;
exports.default = _default;
exports["default"] = _default;

@@ -8,13 +8,9 @@ "use strict";

var _lodash = _interopRequireDefault(require("lodash.get"));
var _queryKey = require("../lib/query-key");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var responseBody = function responseBody(errorsState, queryConfig) {
var _ref3;
const responseBody = (errorsState, queryConfig) => {
if (queryConfig) {
const queryKey = (0, _queryKey.getQueryKey)(queryConfig);
return (0, _lodash.default)(errorsState, [queryKey, 'responseBody']);
}
var queryKey = (0, _queryKey.getQueryKey)(queryConfig);
return (_ref3 = errorsState) != null ? (_ref3 = _ref3[queryKey]) != null ? _ref3.responseBody : _ref3 : _ref3;
};

@@ -24,7 +20,7 @@

const responseText = (errorsState, queryConfig) => {
if (queryConfig) {
const queryKey = (0, _queryKey.getQueryKey)(queryConfig);
return (0, _lodash.default)(errorsState, [queryKey, 'responseText']);
}
var responseText = function responseText(errorsState, queryConfig) {
var _ref2;
var queryKey = (0, _queryKey.getQueryKey)(queryConfig);
return (_ref2 = errorsState) != null ? (_ref2 = _ref2[queryKey]) != null ? _ref2.responseText : _ref2 : _ref2;
};

@@ -34,9 +30,9 @@

const responseHeaders = (errorsState, queryConfig) => {
if (queryConfig) {
const queryKey = (0, _queryKey.getQueryKey)(queryConfig);
return (0, _lodash.default)(errorsState, [queryKey, 'responseHeaders']);
}
var responseHeaders = function responseHeaders(errorsState, queryConfig) {
var _ref;
var queryKey = (0, _queryKey.getQueryKey)(queryConfig);
return (_ref = errorsState) != null ? (_ref = _ref[queryKey]) != null ? _ref.responseHeaders : _ref : _ref;
};
exports.responseHeaders = responseHeaders;

@@ -8,13 +8,9 @@ "use strict";

var _lodash = _interopRequireDefault(require("lodash.get"));
var _queryKey = require("../lib/query-key");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var isFinished = function isFinished(queriesState, queryConfig) {
var _ref6;
const isFinished = (queriesState, queryConfig) => {
if (queryConfig) {
const queryKey = (0, _queryKey.getQueryKey)(queryConfig);
return (0, _lodash.default)(queriesState, [queryKey, 'isFinished']);
}
var queryKey = (0, _queryKey.getQueryKey)(queryConfig);
return ((_ref6 = queriesState) != null ? (_ref6 = _ref6[queryKey]) != null ? _ref6.isFinished : _ref6 : _ref6) || false;
};

@@ -24,7 +20,7 @@

const isPending = (queriesState, queryConfig) => {
if (queryConfig) {
const queryKey = (0, _queryKey.getQueryKey)(queryConfig);
return (0, _lodash.default)(queriesState, [queryKey, 'isPending']);
}
var isPending = function isPending(queriesState, queryConfig) {
var _ref5;
var queryKey = (0, _queryKey.getQueryKey)(queryConfig);
return ((_ref5 = queriesState) != null ? (_ref5 = _ref5[queryKey]) != null ? _ref5.isPending : _ref5 : _ref5) || false;
};

@@ -34,7 +30,7 @@

const status = (queriesState, queryConfig) => {
if (queryConfig) {
const queryKey = (0, _queryKey.getQueryKey)(queryConfig);
return (0, _lodash.default)(queriesState, [queryKey, 'status']);
}
var status = function status(queriesState, queryConfig) {
var _ref4;
var queryKey = (0, _queryKey.getQueryKey)(queryConfig);
return (_ref4 = queriesState) != null ? (_ref4 = _ref4[queryKey]) != null ? _ref4.status : _ref4 : _ref4;
};

@@ -44,7 +40,7 @@

const headers = (queriesState, queryConfig) => {
if (queryConfig) {
const queryKey = (0, _queryKey.getQueryKey)(queryConfig);
return (0, _lodash.default)(queriesState, [queryKey, 'headers']);
}
var headers = function headers(queriesState, queryConfig) {
var _ref3;
var queryKey = (0, _queryKey.getQueryKey)(queryConfig);
return (_ref3 = queriesState) != null ? (_ref3 = _ref3[queryKey]) != null ? _ref3.headers : _ref3 : _ref3;
};

@@ -54,7 +50,7 @@

const lastUpdated = (queriesState, queryConfig) => {
if (queryConfig) {
const queryKey = (0, _queryKey.getQueryKey)(queryConfig);
return (0, _lodash.default)(queriesState, [queryKey, 'lastUpdated']);
}
var lastUpdated = function lastUpdated(queriesState, queryConfig) {
var _ref2;
var queryKey = (0, _queryKey.getQueryKey)(queryConfig);
return (_ref2 = queriesState) != null ? (_ref2 = _ref2[queryKey]) != null ? _ref2.lastUpdated : _ref2 : _ref2;
};

@@ -64,9 +60,9 @@

const queryCount = (queriesState, queryConfig) => {
if (queryConfig) {
const queryKey = (0, _queryKey.getQueryKey)(queryConfig);
return (0, _lodash.default)(queriesState, [queryKey, 'queryCount']);
}
var queryCount = function queryCount(queriesState, queryConfig) {
var _ref;
var queryKey = (0, _queryKey.getQueryKey)(queryConfig);
return ((_ref = queriesState) != null ? (_ref = _ref[queryKey]) != null ? _ref.queryCount : _ref : _ref) || 0;
};
exports.queryCount = queryCount;

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

!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ReduxQuery=e():t.ReduxQuery=e()}(window,function(){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var o=e[n]={i:n,l:!1,exports:{}};return t[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)r.d(n,o,function(e){return t[e]}.bind(null,o));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=11)}([function(t,e,r){(function(e){var r="Expected a function",n="__lodash_hash_undefined__",o=1/0,u="[object Function]",i="[object GeneratorFunction]",a="[object Symbol]",c=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,s=/^\w*$/,f=/^\./,l=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,p=/\\(\\)?/g,y=/^\[object .+?Constructor\]$/,d="object"==typeof e&&e&&e.Object===Object&&e,b="object"==typeof self&&self&&self.Object===Object&&self,h=d||b||Function("return this")();var v,_=Array.prototype,g=Function.prototype,m=Object.prototype,j=h["__core-js_shared__"],O=(v=/[^.]+$/.exec(j&&j.keys&&j.keys.IE_PROTO||""))?"Symbol(src)_1."+v:"",w=g.toString,S=m.hasOwnProperty,E=m.toString,T=RegExp("^"+w.call(S).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),x=h.Symbol,A=_.splice,P=F(h,"Map"),k=F(Object,"create"),q=x?x.prototype:void 0,C=q?q.toString:void 0;function U(t){var e=-1,r=t?t.length:0;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}function K(t){var e=-1,r=t?t.length:0;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}function D(t){var e=-1,r=t?t.length:0;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}function M(t,e){for(var r,n,o=t.length;o--;)if((r=t[o][0])===(n=e)||r!=r&&n!=n)return o;return-1}function H(t,e){for(var r,n=0,o=(e=function(t,e){if(Q(t))return!1;var r=typeof t;if("number"==r||"symbol"==r||"boolean"==r||null==t||J(t))return!0;return s.test(t)||!c.test(t)||null!=e&&t in Object(e)}(e,t)?[e]:Q(r=e)?r:I(r)).length;null!=t&&n<o;)t=t[$(e[n++])];return n&&n==o?t:void 0}function R(t){return!(!L(t)||(e=t,O&&O in e))&&(function(t){var e=L(t)?E.call(t):"";return e==u||e==i}(t)||function(t){var e=!1;if(null!=t&&"function"!=typeof t.toString)try{e=!!(t+"")}catch(t){}return e}(t)?T:y).test(function(t){if(null!=t){try{return w.call(t)}catch(t){}try{return t+""}catch(t){}}return""}(t));var e}function B(t,e){var r,n,o=t.__data__;return("string"==(n=typeof(r=e))||"number"==n||"symbol"==n||"boolean"==n?"__proto__"!==r:null===r)?o["string"==typeof e?"string":"hash"]:o.map}function F(t,e){var r=function(t,e){return null==t?void 0:t[e]}(t,e);return R(r)?r:void 0}U.prototype.clear=function(){this.__data__=k?k(null):{}},U.prototype.delete=function(t){return this.has(t)&&delete this.__data__[t]},U.prototype.get=function(t){var e=this.__data__;if(k){var r=e[t];return r===n?void 0:r}return S.call(e,t)?e[t]:void 0},U.prototype.has=function(t){var e=this.__data__;return k?void 0!==e[t]:S.call(e,t)},U.prototype.set=function(t,e){return this.__data__[t]=k&&void 0===e?n:e,this},K.prototype.clear=function(){this.__data__=[]},K.prototype.delete=function(t){var e=this.__data__,r=M(e,t);return!(r<0||(r==e.length-1?e.pop():A.call(e,r,1),0))},K.prototype.get=function(t){var e=this.__data__,r=M(e,t);return r<0?void 0:e[r][1]},K.prototype.has=function(t){return M(this.__data__,t)>-1},K.prototype.set=function(t,e){var r=this.__data__,n=M(r,t);return n<0?r.push([t,e]):r[n][1]=e,this},D.prototype.clear=function(){this.__data__={hash:new U,map:new(P||K),string:new U}},D.prototype.delete=function(t){return B(this,t).delete(t)},D.prototype.get=function(t){return B(this,t).get(t)},D.prototype.has=function(t){return B(this,t).has(t)},D.prototype.set=function(t,e){return B(this,t).set(t,e),this};var I=N(function(t){var e;t=null==(e=t)?"":function(t){if("string"==typeof t)return t;if(J(t))return C?C.call(t):"";var e=t+"";return"0"==e&&1/t==-o?"-0":e}(e);var r=[];return f.test(t)&&r.push(""),t.replace(l,function(t,e,n,o){r.push(n?o.replace(p,"$1"):e||t)}),r});function $(t){if("string"==typeof t||J(t))return t;var e=t+"";return"0"==e&&1/t==-o?"-0":e}function N(t,e){if("function"!=typeof t||e&&"function"!=typeof e)throw new TypeError(r);var n=function(){var r=arguments,o=e?e.apply(this,r):r[0],u=n.cache;if(u.has(o))return u.get(o);var i=t.apply(this,r);return n.cache=u.set(o,i),i};return n.cache=new(N.Cache||D),n}N.Cache=D;var Q=Array.isArray;function L(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function J(t){return"symbol"==typeof t||function(t){return!!t&&"object"==typeof t}(t)&&E.call(t)==a}t.exports=function(t,e,r){var n=null==t?void 0:H(t,e);return void 0===n?r:n}}).call(this,r(2))},function(t,e,r){"use strict";t.exports=function(t,e,r,n,o,u,i,a){if(!t){var c;if(void 0===e)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var s=[r,n,o,u,i,a],f=0;(c=new Error(e.replace(/%s/g,function(){return s[f++]}))).name="Invariant Violation"}throw c.framesToPop=1,c}}},function(t,e){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(t){"object"==typeof window&&(r=window)}t.exports=r},function(t,e,r){(function(e){var r=1/0,n=9007199254740991,o="[object Arguments]",u="[object Function]",i="[object GeneratorFunction]",a="[object Symbol]",c="object"==typeof e&&e&&e.Object===Object&&e,s="object"==typeof self&&self&&self.Object===Object&&self,f=c||s||Function("return this")();function l(t,e){for(var r=-1,n=e.length,o=t.length;++r<n;)t[o+r]=e[r];return t}var p=Object.prototype,y=p.hasOwnProperty,d=p.toString,b=f.Symbol,h=p.propertyIsEnumerable,v=b?b.isConcatSpreadable:void 0,_=Math.max;function g(t){return j(t)||function(t){return function(t){return O(t)&&function(t){return null!=t&&function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=n}(t.length)&&!function(t){var e=function(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}(t)?d.call(t):"";return e==u||e==i}(t)}(t)}(t)&&y.call(t,"callee")&&(!h.call(t,"callee")||d.call(t)==o)}(t)||!!(v&&t&&t[v])}function m(t){if("string"==typeof t||function(t){return"symbol"==typeof t||O(t)&&d.call(t)==a}(t))return t;var e=t+"";return"0"==e&&1/t==-r?"-0":e}var j=Array.isArray;function O(t){return!!t&&"object"==typeof t}var w,S,E=(w=function(t,e){return null==t?{}:function(t,e){return function(t,e,r){for(var n=-1,o=e.length,u={};++n<o;){var i=e[n],a=t[i];r(a,i)&&(u[i]=a)}return u}(t=Object(t),e,function(e,r){return r in t})}(t,function(t,e){for(var r=-1,n=t?t.length:0,o=Array(n);++r<n;)o[r]=e(t[r],r,t);return o}(function t(e,r,n,o,u){var i=-1,a=e.length;for(n||(n=g),u||(u=[]);++i<a;){var c=e[i];r>0&&n(c)?r>1?t(c,r-1,n,o,u):l(u,c):o||(u[u.length]=c)}return u}(e,1),m))},S=_(void 0===S?w.length-1:S,0),function(){for(var t=arguments,e=-1,r=_(t.length-S,0),n=Array(r);++e<r;)n[e]=t[S+e];e=-1;for(var o=Array(S+1);++e<S;)o[e]=t[e];return o[S]=n,function(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}(w,this,o)});t.exports=E}).call(this,r(2))},function(t,e,r){var n="undefined"!=typeof JSON?JSON:r(7);t.exports=function(t,e){e||(e={}),"function"==typeof e&&(e={cmp:e});var r=e.space||"";"number"==typeof r&&(r=Array(r+1).join(" "));var i,a="boolean"==typeof e.cycles&&e.cycles,c=e.replacer||function(t,e){return e},s=e.cmp&&(i=e.cmp,function(t){return function(e,r){var n={key:e,value:t[e]},o={key:r,value:t[r]};return i(n,o)}}),f=[];return function t(e,i,l,p){var y=r?"\n"+new Array(p+1).join(r):"",d=r?": ":":";if(l&&l.toJSON&&"function"==typeof l.toJSON&&(l=l.toJSON()),void 0!==(l=c.call(e,i,l))){if("object"!=typeof l||null===l)return n.stringify(l);if(o(l)){for(var b=[],h=0;h<l.length;h++){var v=t(l,h,l[h],p+1)||n.stringify(null);b.push(y+r+v)}return"["+b.join(",")+y+"]"}if(-1!==f.indexOf(l)){if(a)return n.stringify("__cycle__");throw new TypeError("Converting circular structure to JSON")}f.push(l);var _=u(l).sort(s&&s(l));for(b=[],h=0;h<_.length;h++){var g=t(l,i=_[h],l[i],p+1);if(g){var m=n.stringify(i)+d+g;b.push(y+r+m)}}return f.splice(f.indexOf(l),1),"{"+b.join(",")+y+"}"}}({"":t},"",t,0)};var o=Array.isArray||function(t){return"[object Array]"==={}.toString.call(t)},u=Object.keys||function(t){var e=Object.prototype.hasOwnProperty||function(){return!0},r=[];for(var n in t)e.call(t,n)&&r.push(n);return r}},function(t,e){function r(t){t=t||{},this.ms=t.min||100,this.max=t.max||1e4,this.factor=t.factor||2,this.jitter=t.jitter>0&&t.jitter<=1?t.jitter:0,this.attempts=0}t.exports=r,r.prototype.duration=function(){var t=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var e=Math.random(),r=Math.floor(e*this.jitter*t);t=0==(1&Math.floor(10*e))?t-r:t+r}return 0|Math.min(t,this.max)},r.prototype.reset=function(){this.attempts=0}},function(t,e,r){(function(t,r){var n=200,o="Expected a function",u="__lodash_hash_undefined__",i=1,a=2,c=1/0,s=9007199254740991,f="[object Arguments]",l="[object Array]",p="[object Boolean]",y="[object Date]",d="[object Error]",b="[object Function]",h="[object GeneratorFunction]",v="[object Map]",_="[object Number]",g="[object Object]",m="[object RegExp]",j="[object Set]",O="[object String]",w="[object Symbol]",S="[object ArrayBuffer]",E="[object DataView]",T=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,x=/^\w*$/,A=/^\./,P=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,k=/\\(\\)?/g,q=/^\[object .+?Constructor\]$/,C=/^(?:0|[1-9]\d*)$/,U={};U["[object Float32Array]"]=U["[object Float64Array]"]=U["[object Int8Array]"]=U["[object Int16Array]"]=U["[object Int32Array]"]=U["[object Uint8Array]"]=U["[object Uint8ClampedArray]"]=U["[object Uint16Array]"]=U["[object Uint32Array]"]=!0,U[f]=U[l]=U[S]=U[p]=U[E]=U[y]=U[d]=U[b]=U[v]=U[_]=U[g]=U[m]=U[j]=U[O]=U["[object WeakMap]"]=!1;var K="object"==typeof t&&t&&t.Object===Object&&t,D="object"==typeof self&&self&&self.Object===Object&&self,M=K||D||Function("return this")(),H=e&&!e.nodeType&&e,R=H&&"object"==typeof r&&r&&!r.nodeType&&r,B=R&&R.exports===H&&K.process,F=function(){try{return B&&B.binding("util")}catch(t){}}(),I=F&&F.isTypedArray;function $(t,e){for(var r=-1,n=e.length,o=t.length;++r<n;)t[o+r]=e[r];return t}function N(t,e){for(var r=-1,n=t?t.length:0;++r<n;)if(e(t[r],r,t))return!0;return!1}function Q(t){var e=!1;if(null!=t&&"function"!=typeof t.toString)try{e=!!(t+"")}catch(t){}return e}function L(t){var e=-1,r=Array(t.size);return t.forEach(function(t,n){r[++e]=[n,t]}),r}function J(t,e){return function(r){return t(e(r))}}function G(t){var e=-1,r=Array(t.size);return t.forEach(function(t){r[++e]=t}),r}var Y,z=Array.prototype,W=Function.prototype,V=Object.prototype,X=M["__core-js_shared__"],Z=(Y=/[^.]+$/.exec(X&&X.keys&&X.keys.IE_PROTO||""))?"Symbol(src)_1."+Y:"",tt=W.toString,et=V.hasOwnProperty,rt=V.toString,nt=RegExp("^"+tt.call(et).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),ot=M.Symbol,ut=M.Uint8Array,it=J(Object.getPrototypeOf,Object),at=V.propertyIsEnumerable,ct=z.splice,st=Object.getOwnPropertySymbols,ft=J(Object.keys,Object),lt=$t(M,"DataView"),pt=$t(M,"Map"),yt=$t(M,"Promise"),dt=$t(M,"Set"),bt=$t(M,"WeakMap"),ht=$t(Object,"create"),vt=Zt(lt),_t=Zt(pt),gt=Zt(yt),mt=Zt(dt),jt=Zt(bt),Ot=ot?ot.prototype:void 0,wt=Ot?Ot.valueOf:void 0,St=Ot?Ot.toString:void 0;function Et(t){var e=-1,r=t?t.length:0;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}function Tt(t){var e=-1,r=t?t.length:0;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}function xt(t){var e=-1,r=t?t.length:0;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}function At(t){var e=-1,r=t?t.length:0;for(this.__data__=new xt;++e<r;)this.add(t[e])}function Pt(t){this.__data__=new Tt(t)}function kt(t,e){var r=ne(t)||re(t)?function(t,e){for(var r=-1,n=Array(t);++r<t;)n[r]=e(r);return n}(t.length,String):[],n=r.length,o=!!n;for(var u in t)!e&&!et.call(t,u)||o&&("length"==u||Jt(u,n))||r.push(u);return r}function qt(t,e){for(var r=t.length;r--;)if(ee(t[r][0],e))return r;return-1}function Ct(t,e){for(var r=0,n=(e=Gt(e,t)?[e]:Rt(e)).length;null!=t&&r<n;)t=t[Xt(e[r++])];return r&&r==n?t:void 0}function Ut(t,e){return null!=t&&e in Object(t)}function Kt(t,e,r,n,o){return t===e||(null==t||null==e||!ae(t)&&!ce(e)?t!=t&&e!=e:function(t,e,r,n,o,u){var c=ne(t),s=ne(e),b=l,h=l;c||(b=(b=Lt(t))==f?g:b);s||(h=(h=Lt(e))==f?g:h);var T=b==g&&!Q(t),x=h==g&&!Q(e),A=b==h;if(A&&!T)return u||(u=new Pt),c||le(t)?Bt(t,e,r,n,o,u):function(t,e,r,n,o,u,c){switch(r){case E:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case S:return!(t.byteLength!=e.byteLength||!n(new ut(t),new ut(e)));case p:case y:case _:return ee(+t,+e);case d:return t.name==e.name&&t.message==e.message;case m:case O:return t==e+"";case v:var s=L;case j:var f=u&a;if(s||(s=G),t.size!=e.size&&!f)return!1;var l=c.get(t);if(l)return l==e;u|=i,c.set(t,e);var b=Bt(s(t),s(e),n,o,u,c);return c.delete(t),b;case w:if(wt)return wt.call(t)==wt.call(e)}return!1}(t,e,b,r,n,o,u);if(!(o&a)){var P=T&&et.call(t,"__wrapped__"),k=x&&et.call(e,"__wrapped__");if(P||k){var q=P?t.value():t,C=k?e.value():e;return u||(u=new Pt),r(q,C,n,o,u)}}if(!A)return!1;return u||(u=new Pt),function(t,e,r,n,o,u){var i=o&a,c=pe(t),s=c.length,f=pe(e).length;if(s!=f&&!i)return!1;for(var l=s;l--;){var p=c[l];if(!(i?p in e:et.call(e,p)))return!1}var y=u.get(t);if(y&&u.get(e))return y==e;var d=!0;u.set(t,e),u.set(e,t);for(var b=i;++l<s;){p=c[l];var h=t[p],v=e[p];if(n)var _=i?n(v,h,p,e,t,u):n(h,v,p,t,e,u);if(!(void 0===_?h===v||r(h,v,n,o,u):_)){d=!1;break}b||(b="constructor"==p)}if(d&&!b){var g=t.constructor,m=e.constructor;g!=m&&"constructor"in t&&"constructor"in e&&!("function"==typeof g&&g instanceof g&&"function"==typeof m&&m instanceof m)&&(d=!1)}return u.delete(t),u.delete(e),d}(t,e,r,n,o,u)}(t,e,Kt,r,n,o))}function Dt(t){return!(!ae(t)||(e=t,Z&&Z in e))&&(ue(t)||Q(t)?nt:q).test(Zt(t));var e}function Mt(t){return"function"==typeof t?t:null==t?de:"object"==typeof t?ne(t)?function(t,e){if(Gt(t)&&zt(e))return Wt(Xt(t),e);return function(r){var n=function(t,e,r){var n=null==t?void 0:Ct(t,e);return void 0===n?r:n}(r,t);return void 0===n&&n===e?function(t,e){return null!=t&&function(t,e,r){e=Gt(e,t)?[e]:Rt(e);var n,o=-1,u=e.length;for(;++o<u;){var i=Xt(e[o]);if(!(n=null!=t&&r(t,i)))break;t=t[i]}if(n)return n;return!!(u=t?t.length:0)&&ie(u)&&Jt(i,u)&&(ne(t)||re(t))}(t,e,Ut)}(r,t):Kt(e,n,void 0,i|a)}}(t[0],t[1]):function(t){var e=function(t){var e=pe(t),r=e.length;for(;r--;){var n=e[r],o=t[n];e[r]=[n,o,zt(o)]}return e}(t);if(1==e.length&&e[0][2])return Wt(e[0][0],e[0][1]);return function(r){return r===t||function(t,e,r,n){var o=r.length,u=o,c=!n;if(null==t)return!u;for(t=Object(t);o--;){var s=r[o];if(c&&s[2]?s[1]!==t[s[0]]:!(s[0]in t))return!1}for(;++o<u;){var f=(s=r[o])[0],l=t[f],p=s[1];if(c&&s[2]){if(void 0===l&&!(f in t))return!1}else{var y=new Pt;if(n)var d=n(l,p,f,t,e,y);if(!(void 0===d?Kt(p,l,n,i|a,y):d))return!1}}return!0}(r,t,e)}}(t):Gt(e=t)?(r=Xt(e),function(t){return null==t?void 0:t[r]}):function(t){return function(e){return Ct(e,t)}}(e);var e,r}function Ht(t){if(!ae(t))return function(t){var e=[];if(null!=t)for(var r in Object(t))e.push(r);return e}(t);var e=Yt(t),r=[];for(var n in t)("constructor"!=n||!e&&et.call(t,n))&&r.push(n);return r}function Rt(t){return ne(t)?t:Vt(t)}function Bt(t,e,r,n,o,u){var c=o&a,s=t.length,f=e.length;if(s!=f&&!(c&&f>s))return!1;var l=u.get(t);if(l&&u.get(e))return l==e;var p=-1,y=!0,d=o&i?new At:void 0;for(u.set(t,e),u.set(e,t);++p<s;){var b=t[p],h=e[p];if(n)var v=c?n(h,b,p,e,t,u):n(b,h,p,t,e,u);if(void 0!==v){if(v)continue;y=!1;break}if(d){if(!N(e,function(t,e){if(!d.has(e)&&(b===t||r(b,t,n,o,u)))return d.add(e)})){y=!1;break}}else if(b!==h&&!r(b,h,n,o,u)){y=!1;break}}return u.delete(t),u.delete(e),y}function Ft(t){return function(t,e,r){var n=e(t);return ne(t)?n:$(n,r(t))}(t,ye,Qt)}function It(t,e){var r,n,o=t.__data__;return("string"==(n=typeof(r=e))||"number"==n||"symbol"==n||"boolean"==n?"__proto__"!==r:null===r)?o["string"==typeof e?"string":"hash"]:o.map}function $t(t,e){var r=function(t,e){return null==t?void 0:t[e]}(t,e);return Dt(r)?r:void 0}Et.prototype.clear=function(){this.__data__=ht?ht(null):{}},Et.prototype.delete=function(t){return this.has(t)&&delete this.__data__[t]},Et.prototype.get=function(t){var e=this.__data__;if(ht){var r=e[t];return r===u?void 0:r}return et.call(e,t)?e[t]:void 0},Et.prototype.has=function(t){var e=this.__data__;return ht?void 0!==e[t]:et.call(e,t)},Et.prototype.set=function(t,e){return this.__data__[t]=ht&&void 0===e?u:e,this},Tt.prototype.clear=function(){this.__data__=[]},Tt.prototype.delete=function(t){var e=this.__data__,r=qt(e,t);return!(r<0||(r==e.length-1?e.pop():ct.call(e,r,1),0))},Tt.prototype.get=function(t){var e=this.__data__,r=qt(e,t);return r<0?void 0:e[r][1]},Tt.prototype.has=function(t){return qt(this.__data__,t)>-1},Tt.prototype.set=function(t,e){var r=this.__data__,n=qt(r,t);return n<0?r.push([t,e]):r[n][1]=e,this},xt.prototype.clear=function(){this.__data__={hash:new Et,map:new(pt||Tt),string:new Et}},xt.prototype.delete=function(t){return It(this,t).delete(t)},xt.prototype.get=function(t){return It(this,t).get(t)},xt.prototype.has=function(t){return It(this,t).has(t)},xt.prototype.set=function(t,e){return It(this,t).set(t,e),this},At.prototype.add=At.prototype.push=function(t){return this.__data__.set(t,u),this},At.prototype.has=function(t){return this.__data__.has(t)},Pt.prototype.clear=function(){this.__data__=new Tt},Pt.prototype.delete=function(t){return this.__data__.delete(t)},Pt.prototype.get=function(t){return this.__data__.get(t)},Pt.prototype.has=function(t){return this.__data__.has(t)},Pt.prototype.set=function(t,e){var r=this.__data__;if(r instanceof Tt){var o=r.__data__;if(!pt||o.length<n-1)return o.push([t,e]),this;r=this.__data__=new xt(o)}return r.set(t,e),this};var Nt=st?J(st,Object):be,Qt=st?function(t){for(var e=[];t;)$(e,Nt(t)),t=it(t);return e}:be,Lt=function(t){return rt.call(t)};function Jt(t,e){return!!(e=null==e?s:e)&&("number"==typeof t||C.test(t))&&t>-1&&t%1==0&&t<e}function Gt(t,e){if(ne(t))return!1;var r=typeof t;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=t&&!se(t))||(x.test(t)||!T.test(t)||null!=e&&t in Object(e))}function Yt(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||V)}function zt(t){return t==t&&!ae(t)}function Wt(t,e){return function(r){return null!=r&&(r[t]===e&&(void 0!==e||t in Object(r)))}}(lt&&Lt(new lt(new ArrayBuffer(1)))!=E||pt&&Lt(new pt)!=v||yt&&"[object Promise]"!=Lt(yt.resolve())||dt&&Lt(new dt)!=j||bt&&"[object WeakMap]"!=Lt(new bt))&&(Lt=function(t){var e=rt.call(t),r=e==g?t.constructor:void 0,n=r?Zt(r):void 0;if(n)switch(n){case vt:return E;case _t:return v;case gt:return"[object Promise]";case mt:return j;case jt:return"[object WeakMap]"}return e});var Vt=te(function(t){var e;t=null==(e=t)?"":function(t){if("string"==typeof t)return t;if(se(t))return St?St.call(t):"";var e=t+"";return"0"==e&&1/t==-c?"-0":e}(e);var r=[];return A.test(t)&&r.push(""),t.replace(P,function(t,e,n,o){r.push(n?o.replace(k,"$1"):e||t)}),r});function Xt(t){if("string"==typeof t||se(t))return t;var e=t+"";return"0"==e&&1/t==-c?"-0":e}function Zt(t){if(null!=t){try{return tt.call(t)}catch(t){}try{return t+""}catch(t){}}return""}function te(t,e){if("function"!=typeof t||e&&"function"!=typeof e)throw new TypeError(o);var r=function(){var n=arguments,o=e?e.apply(this,n):n[0],u=r.cache;if(u.has(o))return u.get(o);var i=t.apply(this,n);return r.cache=u.set(o,i),i};return r.cache=new(te.Cache||xt),r}function ee(t,e){return t===e||t!=t&&e!=e}function re(t){return function(t){return ce(t)&&oe(t)}(t)&&et.call(t,"callee")&&(!at.call(t,"callee")||rt.call(t)==f)}te.Cache=xt;var ne=Array.isArray;function oe(t){return null!=t&&ie(t.length)&&!ue(t)}function ue(t){var e=ae(t)?rt.call(t):"";return e==b||e==h}function ie(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=s}function ae(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function ce(t){return!!t&&"object"==typeof t}function se(t){return"symbol"==typeof t||ce(t)&&rt.call(t)==w}var fe,le=I?(fe=I,function(t){return fe(t)}):function(t){return ce(t)&&ie(t.length)&&!!U[rt.call(t)]};function pe(t){return oe(t)?kt(t):function(t){if(!Yt(t))return ft(t);var e=[];for(var r in Object(t))et.call(t,r)&&"constructor"!=r&&e.push(r);return e}(t)}function ye(t){return oe(t)?kt(t,!0):Ht(t)}function de(t){return t}function be(){return[]}r.exports=function(t,e){return null==t?{}:function(t,e,r){for(var n=-1,o=e.length,u={};++n<o;){var i=e[n],a=t[i];r(a,i)&&(u[i]=a)}return u}(t,Ft(t),Mt(e))}}).call(this,r(2),r(10)(t))},function(t,e,r){e.parse=r(8),e.stringify=r(9)},function(t,e){var r,n,o,u,i={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:"\n",r:"\r",t:"\t"},a=function(t){throw{name:"SyntaxError",message:t,at:r,text:o}},c=function(t){return t&&t!==n&&a("Expected '"+t+"' instead of '"+n+"'"),n=o.charAt(r),r+=1,n},s=function(){var t,e="";for("-"===n&&(e="-",c("-"));n>="0"&&n<="9";)e+=n,c();if("."===n)for(e+=".";c()&&n>="0"&&n<="9";)e+=n;if("e"===n||"E"===n)for(e+=n,c(),"-"!==n&&"+"!==n||(e+=n,c());n>="0"&&n<="9";)e+=n,c();if(t=+e,isFinite(t))return t;a("Bad number")},f=function(){var t,e,r,o="";if('"'===n)for(;c();){if('"'===n)return c(),o;if("\\"===n)if(c(),"u"===n){for(r=0,e=0;e<4&&(t=parseInt(c(),16),isFinite(t));e+=1)r=16*r+t;o+=String.fromCharCode(r)}else{if("string"!=typeof i[n])break;o+=i[n]}else o+=n}a("Bad string")},l=function(){for(;n&&n<=" ";)c()};u=function(){switch(l(),n){case"{":return function(){var t,e={};if("{"===n){if(c("{"),l(),"}"===n)return c("}"),e;for(;n;){if(t=f(),l(),c(":"),Object.hasOwnProperty.call(e,t)&&a('Duplicate key "'+t+'"'),e[t]=u(),l(),"}"===n)return c("}"),e;c(","),l()}}a("Bad object")}();case"[":return function(){var t=[];if("["===n){if(c("["),l(),"]"===n)return c("]"),t;for(;n;){if(t.push(u()),l(),"]"===n)return c("]"),t;c(","),l()}}a("Bad array")}();case'"':return f();case"-":return s();default:return n>="0"&&n<="9"?s():function(){switch(n){case"t":return c("t"),c("r"),c("u"),c("e"),!0;case"f":return c("f"),c("a"),c("l"),c("s"),c("e"),!1;case"n":return c("n"),c("u"),c("l"),c("l"),null}a("Unexpected '"+n+"'")}()}},t.exports=function(t,e){var i;return o=t,r=0,n=" ",i=u(),l(),n&&a("Syntax error"),"function"==typeof e?function t(r,n){var o,u,i=r[n];if(i&&"object"==typeof i)for(o in i)Object.prototype.hasOwnProperty.call(i,o)&&(void 0!==(u=t(i,o))?i[o]=u:delete i[o]);return e.call(r,n,i)}({"":i},""):i}},function(t,e){var r,n,o,u=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,i={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};function a(t){return u.lastIndex=0,u.test(t)?'"'+t.replace(u,function(t){var e=i[t];return"string"==typeof e?e:"\\u"+("0000"+t.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+t+'"'}t.exports=function(t,e,u){var i;if(r="",n="","number"==typeof u)for(i=0;i<u;i+=1)n+=" ";else"string"==typeof u&&(n=u);if(o=e,e&&"function"!=typeof e&&("object"!=typeof e||"number"!=typeof e.length))throw new Error("JSON.stringify");return function t(e,u){var i,c,s,f,l,p=r,y=u[e];switch(y&&"object"==typeof y&&"function"==typeof y.toJSON&&(y=y.toJSON(e)),"function"==typeof o&&(y=o.call(u,e,y)),typeof y){case"string":return a(y);case"number":return isFinite(y)?String(y):"null";case"boolean":case"null":return String(y);case"object":if(!y)return"null";if(r+=n,l=[],"[object Array]"===Object.prototype.toString.apply(y)){for(f=y.length,i=0;i<f;i+=1)l[i]=t(i,y)||"null";return s=0===l.length?"[]":r?"[\n"+r+l.join(",\n"+r)+"\n"+p+"]":"["+l.join(",")+"]",r=p,s}if(o&&"object"==typeof o)for(f=o.length,i=0;i<f;i+=1)"string"==typeof(c=o[i])&&(s=t(c,y))&&l.push(a(c)+(r?": ":":")+s);else for(c in y)Object.prototype.hasOwnProperty.call(y,c)&&(s=t(c,y))&&l.push(a(c)+(r?": ":":")+s);return s=0===l.length?"{}":r?"{\n"+r+l.join(",\n"+r)+"\n"+p+"}":"{"+l.join(",")+"}",r=p,s}}("",{"":t})}},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},function(t,e,r){"use strict";r.r(e);var n={};r.r(n),r.d(n,"REQUEST_ASYNC",function(){return i}),r.d(n,"REQUEST_START",function(){return a}),r.d(n,"REQUEST_SUCCESS",function(){return c}),r.d(n,"REQUEST_FAILURE",function(){return s}),r.d(n,"CANCEL_QUERY",function(){return f}),r.d(n,"MUTATE_ASYNC",function(){return l}),r.d(n,"MUTATE_START",function(){return p}),r.d(n,"MUTATE_SUCCESS",function(){return y}),r.d(n,"MUTATE_FAILURE",function(){return d}),r.d(n,"RESET",function(){return b}),r.d(n,"UPDATE_ENTITIES",function(){return h});var o={};r.r(o),r.d(o,"responseBody",function(){return w}),r.d(o,"responseText",function(){return S}),r.d(o,"responseHeaders",function(){return E});var u={};r.r(u),r.d(u,"isFinished",function(){return T}),r.d(u,"isPending",function(){return x}),r.d(u,"status",function(){return A}),r.d(u,"headers",function(){return P}),r.d(u,"lastUpdated",function(){return k}),r.d(u,"queryCount",function(){return q});const i="@@query/REQUEST_ASYNC",a="@@query/REQUEST_START",c="@@query/REQUEST_SUCCESS",s="@@query/REQUEST_FAILURE",f="@@query/CANCEL_QUERY",l="@@query/MUTATE_ASYNC",p="@@query/MUTATE_START",y="@@query/MUTATE_SUCCESS",d="@@query/MUTATE_FAILURE",b="@@query/RESET",h="@@query/UPDATE_ENTITIES";var v={DELETE:"DELETE",GET:"GET",HEAD:"HEAD",POST:"POST",PUT:"PUT",PATCH:"PATCH"},_=r(0),g=r.n(_),m=r(4),j=r.n(m);const O=t=>{if(!t)return null;const{url:e,body:r,queryKey:n}=t;return null!=n?n:j()({url:e,body:r})},w=(t,e)=>{if(e){const r=O(e);return g()(t,[r,"responseBody"])}},S=(t,e)=>{if(e){const r=O(e);return g()(t,[r,"responseText"])}},E=(t,e)=>{if(e){const r=O(e);return g()(t,[r,"responseHeaders"])}},T=(t,e)=>{if(e){const r=O(e);return g()(t,[r,"isFinished"])}},x=(t,e)=>{if(e){const r=O(e);return g()(t,[r,"isPending"])}},A=(t,e)=>{if(e){const r=O(e);return g()(t,[r,"status"])}},P=(t,e)=>{if(e){const r=O(e);return g()(t,[r,"headers"])}},k=(t,e)=>{if(e){const r=O(e);return g()(t,[r,"lastUpdated"])}},q=(t,e)=>{if(e){const r=O(e);return g()(t,[r,"queryCount"])}};function C(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable}))),n.forEach(function(e){U(t,e,r[e])})}return t}function U(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}const K={};var D=(t=K,e)=>{switch(e.type){case b:return{};case p:case a:{const{queryKey:r}=e;return C({},t,{[r]:{url:e.url,isFinished:!1,isPending:!0,networkHandler:e.networkHandler,isMutation:e.type===p,queryCount:t[r]?t[r].queryCount+1:1}})}case c:case d:case y:case s:{const{queryKey:r}=e;return C({},t,{[r]:C({},t[r],{isFinished:!0,isPending:!1,lastUpdated:e.time,status:e.status,headers:e.responseHeaders})})}case f:{const{queryKey:r}=e;return t[r].isPending?C({},t,{[r]:C({},t[r],{isFinished:!0,isPending:!1,status:0})}):t}default:return t}};const M=(t,e,r)=>Object.keys(t||{}).reduce((n,o)=>(n[o]=t[o]((e||{})[o],(r||{})[o]),n),{}),H=(t,e)=>Object.keys(t).reduce((r,n)=>(r[n]=t[n](e[n]),r),{});function R(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable}))),n.forEach(function(e){B(t,e,r[e])})}return t}function B(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}const F={};var I=(t=F,e)=>e.type===b?"entities"in e?e.entities:F:e.type===p&&e.optimisticEntities?R({},t,e.optimisticEntities):e.type===d&&e.rolledBackEntities?R({},t,e.rolledBackEntities):e.type===c||e.type===y?R({},t,e.entities):e.type===h?R({},t,H(e.update,t)):t;function $(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable}))),n.forEach(function(e){N(t,e,r[e])})}return t}function N(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}const Q={};var L=(t=Q,e)=>{switch(e.type){case b:return{};case p:case a:{const{queryKey:r}=e,n=$({},t);return delete n[r],n}case d:case s:{const{queryKey:r}=e;return $({},t,{[r]:$({},t[r],{responseBody:e.responseBody,responseText:e.responseText,responseHeaders:e.responseHeaders})})}default:return t}},J=r(5),G=r.n(J),Y=r(1),z=r.n(Y),W=r(3),V=r.n(W),X=r(6),Z=r.n(X);const tt=({body:t,force:e,meta:r,options:n,queryKey:o,retry:u,transform:a,update:c,url:s,unstable_preDispatchCallback:f})=>({type:i,body:t,force:e,queryKey:o,meta:r,options:n,retry:u,transform:a,update:c,url:s,unstable_preDispatchCallback:f}),et=({body:t,meta:e,optimisticUpdate:r,options:n,queryKey:o,rollback:u,transform:i,update:a,url:c})=>({type:l,body:t,meta:e,optimisticUpdate:r,options:n,queryKey:o,rollback:u,transform:i,update:a,url:c}),rt=t=>({type:f,queryKey:t}),nt=t=>({type:h,update:t});function ot(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function ut(t,e){if(null==t)return{};var r,n,o=function(t,e){if(null==t)return{};var r,n,o={},u=Object.keys(t);for(n=0;n<u.length;n++)r=u[n],e.indexOf(r)>=0||(o[r]=t[r]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(n=0;n<u.length;n++)r=u[n],e.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}const it={backoff:{maxAttempts:5,minDuration:300,maxDuration:5e3},retryableStatusCodes:[0,408,429,503,504],getQueryKey:O},at=t=>Z()(t,t=>t.isPending),ct=t=>t>=200&&t<300,st=t=>t;var ft=(t,e,r,n)=>({dispatch:o,getState:u})=>h=>_=>{let m;const j=function(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable}))),n.forEach(function(e){ot(t,e,r[e])})}return t}({},it,n),{getQueryKey:O}=j,w=ut(j,["getQueryKey"]);switch(_.type){case i:{const{url:n,body:i,force:f,retry:l,transform:p=st,update:y,options:d={},meta:b}=_;z()(!!n,"Missing required `url` field in action handler");const h=O(_),j=u(),S=e(j)[h],E=g()(S,["isPending"]),T=g()(S,["status"]),x=ct(T);(f||!S||l&&!E&&!x)&&(m=new Promise(e=>{const f=new Date,{method:l=v.GET}=d;let g=0;const m=new G.a({min:w.backoff.minDuration,max:w.backoff.maxDuration}),j=()=>{const v=t(n,l,{body:i,headers:d.headers,credentials:d.credentials});o((({body:t,meta:e,networkHandler:r,queryKey:n,url:o})=>({type:a,url:o,body:t,networkHandler:r,meta:e,queryKey:n}))({body:i,meta:b,networkHandler:v,queryKey:h,url:n})),g+=1,v.execute((t,a,l,d,v)=>{if(w.retryableStatusCodes.includes(a)&&g<w.backoff.maxAttempts)return void setTimeout(j,m.duration());const O=new Date-f;let S,E;if(_.unstable_preDispatchCallback&&_.unstable_preDispatchCallback(),t||!ct(a))o((({body:t,duration:e,meta:r,queryKey:n,responseBody:o,responseHeaders:u,responseText:i,status:a,url:c})=>({type:s,url:c,body:t,duration:e,status:a,responseBody:o,responseText:i,responseHeaders:u,meta:r,queryKey:n,time:Date.now()}))({body:i,duration:O,meta:b,queryKey:h,responseBody:l,responseHeaders:v,status:a,responseText:d,url:n})),e({body:l,duration:O,status:a,text:d,headers:v});else{const t=u(),s=r(t);S=p(l,d),E=M(y,s,S),o((({body:t,duration:e,entities:r,meta:n,queryKey:o,responseBody:u,responseHeaders:i,responseText:a,status:s,url:f})=>({type:c,url:f,body:t,duration:e,status:s,entities:r,responseBody:u,responseText:a,responseHeaders:i,meta:n,queryKey:o,time:Date.now()}))({body:i,duration:O,meta:b,entities:E,queryKey:h,responseBody:l,responseHeaders:v,status:a,responseText:d,url:n})),e({body:l,duration:O,status:a,text:d,transformed:S,entities:E,headers:v})}})};j()}));break}case l:{const{url:e,transform:n=st,update:i,rollback:a,body:c,optimisticUpdate:s,options:f={},meta:l}=_;z()(!!e,"Missing required `url` field in action handler");const b=u(),h=r(b);let g;s&&(g=H(s,h));const j=O(_);m=new Promise(b=>{const m=new Date,{method:O=v.POST}=f,w=t(e,O,{body:c,headers:f.headers,credentials:f.credentials});o((({body:t,meta:e,networkHandler:r,optimisticEntities:n,queryKey:o,url:u})=>({type:p,url:u,body:t,networkHandler:r,optimisticEntities:n,queryKey:o,meta:e}))({body:c,meta:l,networkHandler:w,optimisticEntities:g,queryKey:j,url:e})),w.execute((t,f,p,v,O)=>{const w=new Date-m,S=u(),E=r(S);let T,x;if(_.unstable_preDispatchCallback&&_.unstable_preDispatchCallback(),t||!ct(f)){let t;s&&(t=((t={},e,r)=>Object.keys(e).reduce((n,o)=>(t[o]?n[o]=t[o](e[o],r[o]):n[o]=e[o],n),{}))(a,V()(h,Object.keys(g)),V()(E,Object.keys(g)))),o((({body:t,duration:e,meta:r,queryKey:n,responseBody:o,responseHeaders:u,responseText:i,rolledBackEntities:a,status:c,url:s})=>({type:d,url:s,body:t,duration:e,status:c,responseBody:o,responseText:i,responseHeaders:u,rolledBackEntities:a,queryKey:n,time:Date.now(),meta:r}))({body:c,duration:w,meta:l,queryKey:j,responseBody:p,responseHeaders:O,status:f,responseText:v,rolledBackEntities:t,url:e})),b({body:p,duration:w,status:f,text:v,headers:O})}else T=n(p,v),x=M(i,E,T),o((({body:t,duration:e,entities:r,meta:n,queryKey:o,responseBody:u,responseHeaders:i,responseText:a,status:c,url:s})=>({type:y,url:s,body:t,duration:e,status:c,responseBody:u,responseText:a,responseHeaders:i,entities:r,queryKey:o,time:Date.now(),meta:n}))({url:e,body:c,duration:w,status:f,entities:x,queryKey:j,responseBody:p,responseText:v,responseHeaders:O,meta:l})),b({body:p,duration:w,status:f,text:v,transformed:T,entities:x,headers:O})})});break}case f:{const{queryKey:t}=_;z()(!!t,"Missing required `queryKey` field in action handler");const r=u(),n=e(r),o=at(n);t in o?(o[t].networkHandler.abort(),m=h(_)):(console.warn("Trying to cancel a request that is not in flight: ",t),m=null);break}case b:{const t=u(),r=e(t),n=at(r);for(const t in n)n.hasOwnProperty(t)&&n[t].networkHandler.abort();m=h(_);break}default:m=h(_)}return m};r.d(e,"getQueryKey",function(){return O}),r.d(e,"queriesReducer",function(){return D}),r.d(e,"entitiesReducer",function(){return I}),r.d(e,"errorsReducer",function(){return L}),r.d(e,"queryMiddleware",function(){return ft}),r.d(e,"cancelQuery",function(){return rt}),r.d(e,"mutateAsync",function(){return et}),r.d(e,"requestAsync",function(){return tt}),r.d(e,"updateEntities",function(){return nt}),r.d(e,"actionTypes",function(){return n}),r.d(e,"errorSelectors",function(){return o}),r.d(e,"httpMethods",function(){return v}),r.d(e,"querySelectors",function(){return u})}])});
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ReduxQuery=e():t.ReduxQuery=e()}(window,function(){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var o=e[n]={i:n,l:!1,exports:{}};return t[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)r.d(n,o,function(e){return t[e]}.bind(null,o));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=11)}([function(t,e,r){"use strict";t.exports=function(t,e,r,n,o,u,i,a){if(!t){var c;if(void 0===e)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var f=[r,n,o,u,i,a],s=0;(c=new Error(e.replace(/%s/g,function(){return f[s++]}))).name="Invariant Violation"}throw c.framesToPop=1,c}}},function(t,e){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(t){"object"==typeof window&&(r=window)}t.exports=r},function(t,e,r){(function(e){var r="Expected a function",n="__lodash_hash_undefined__",o=1/0,u="[object Function]",i="[object GeneratorFunction]",a="[object Symbol]",c=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,f=/^\w*$/,s=/^\./,l=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,p=/\\(\\)?/g,y=/^\[object .+?Constructor\]$/,d="object"==typeof e&&e&&e.Object===Object&&e,v="object"==typeof self&&self&&self.Object===Object&&self,h=d||v||Function("return this")();var b,_=Array.prototype,g=Function.prototype,m=Object.prototype,j=h["__core-js_shared__"],O=(b=/[^.]+$/.exec(j&&j.keys&&j.keys.IE_PROTO||""))?"Symbol(src)_1."+b:"",w=g.toString,S=m.hasOwnProperty,E=m.toString,T=RegExp("^"+w.call(S).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),x=h.Symbol,A=_.splice,P=H(h,"Map"),q=H(Object,"create"),k=x?x.prototype:void 0,C=k?k.toString:void 0;function U(t){var e=-1,r=t?t.length:0;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}function K(t){var e=-1,r=t?t.length:0;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}function D(t){var e=-1,r=t?t.length:0;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}function M(t,e){for(var r,n,o=t.length;o--;)if((r=t[o][0])===(n=e)||r!=r&&n!=n)return o;return-1}function R(t,e){for(var r,n=0,o=(e=function(t,e){if(Q(t))return!1;var r=typeof t;if("number"==r||"symbol"==r||"boolean"==r||null==t||J(t))return!0;return f.test(t)||!c.test(t)||null!=e&&t in Object(e)}(e,t)?[e]:Q(r=e)?r:I(r)).length;null!=t&&n<o;)t=t[$(e[n++])];return n&&n==o?t:void 0}function B(t){return!(!L(t)||(e=t,O&&O in e))&&(function(t){var e=L(t)?E.call(t):"";return e==u||e==i}(t)||function(t){var e=!1;if(null!=t&&"function"!=typeof t.toString)try{e=!!(t+"")}catch(t){}return e}(t)?T:y).test(function(t){if(null!=t){try{return w.call(t)}catch(t){}try{return t+""}catch(t){}}return""}(t));var e}function F(t,e){var r,n,o=t.__data__;return("string"==(n=typeof(r=e))||"number"==n||"symbol"==n||"boolean"==n?"__proto__"!==r:null===r)?o["string"==typeof e?"string":"hash"]:o.map}function H(t,e){var r=function(t,e){return null==t?void 0:t[e]}(t,e);return B(r)?r:void 0}U.prototype.clear=function(){this.__data__=q?q(null):{}},U.prototype.delete=function(t){return this.has(t)&&delete this.__data__[t]},U.prototype.get=function(t){var e=this.__data__;if(q){var r=e[t];return r===n?void 0:r}return S.call(e,t)?e[t]:void 0},U.prototype.has=function(t){var e=this.__data__;return q?void 0!==e[t]:S.call(e,t)},U.prototype.set=function(t,e){return this.__data__[t]=q&&void 0===e?n:e,this},K.prototype.clear=function(){this.__data__=[]},K.prototype.delete=function(t){var e=this.__data__,r=M(e,t);return!(r<0||(r==e.length-1?e.pop():A.call(e,r,1),0))},K.prototype.get=function(t){var e=this.__data__,r=M(e,t);return r<0?void 0:e[r][1]},K.prototype.has=function(t){return M(this.__data__,t)>-1},K.prototype.set=function(t,e){var r=this.__data__,n=M(r,t);return n<0?r.push([t,e]):r[n][1]=e,this},D.prototype.clear=function(){this.__data__={hash:new U,map:new(P||K),string:new U}},D.prototype.delete=function(t){return F(this,t).delete(t)},D.prototype.get=function(t){return F(this,t).get(t)},D.prototype.has=function(t){return F(this,t).has(t)},D.prototype.set=function(t,e){return F(this,t).set(t,e),this};var I=N(function(t){var e;t=null==(e=t)?"":function(t){if("string"==typeof t)return t;if(J(t))return C?C.call(t):"";var e=t+"";return"0"==e&&1/t==-o?"-0":e}(e);var r=[];return s.test(t)&&r.push(""),t.replace(l,function(t,e,n,o){r.push(n?o.replace(p,"$1"):e||t)}),r});function $(t){if("string"==typeof t||J(t))return t;var e=t+"";return"0"==e&&1/t==-o?"-0":e}function N(t,e){if("function"!=typeof t||e&&"function"!=typeof e)throw new TypeError(r);var n=function(){var r=arguments,o=e?e.apply(this,r):r[0],u=n.cache;if(u.has(o))return u.get(o);var i=t.apply(this,r);return n.cache=u.set(o,i),i};return n.cache=new(N.Cache||D),n}N.Cache=D;var Q=Array.isArray;function L(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function J(t){return"symbol"==typeof t||function(t){return!!t&&"object"==typeof t}(t)&&E.call(t)==a}t.exports=function(t,e,r){var n=null==t?void 0:R(t,e);return void 0===n?r:n}}).call(this,r(1))},function(t,e,r){(function(e){var r=1/0,n=9007199254740991,o="[object Arguments]",u="[object Function]",i="[object GeneratorFunction]",a="[object Symbol]",c="object"==typeof e&&e&&e.Object===Object&&e,f="object"==typeof self&&self&&self.Object===Object&&self,s=c||f||Function("return this")();function l(t,e){for(var r=-1,n=e.length,o=t.length;++r<n;)t[o+r]=e[r];return t}var p=Object.prototype,y=p.hasOwnProperty,d=p.toString,v=s.Symbol,h=p.propertyIsEnumerable,b=v?v.isConcatSpreadable:void 0,_=Math.max;function g(t){return j(t)||function(t){return function(t){return O(t)&&function(t){return null!=t&&function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=n}(t.length)&&!function(t){var e=function(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}(t)?d.call(t):"";return e==u||e==i}(t)}(t)}(t)&&y.call(t,"callee")&&(!h.call(t,"callee")||d.call(t)==o)}(t)||!!(b&&t&&t[b])}function m(t){if("string"==typeof t||function(t){return"symbol"==typeof t||O(t)&&d.call(t)==a}(t))return t;var e=t+"";return"0"==e&&1/t==-r?"-0":e}var j=Array.isArray;function O(t){return!!t&&"object"==typeof t}var w,S,E=(w=function(t,e){return null==t?{}:function(t,e){return function(t,e,r){for(var n=-1,o=e.length,u={};++n<o;){var i=e[n],a=t[i];r(a,i)&&(u[i]=a)}return u}(t=Object(t),e,function(e,r){return r in t})}(t,function(t,e){for(var r=-1,n=t?t.length:0,o=Array(n);++r<n;)o[r]=e(t[r],r,t);return o}(function t(e,r,n,o,u){var i=-1,a=e.length;for(n||(n=g),u||(u=[]);++i<a;){var c=e[i];r>0&&n(c)?r>1?t(c,r-1,n,o,u):l(u,c):o||(u[u.length]=c)}return u}(e,1),m))},S=_(void 0===S?w.length-1:S,0),function(){for(var t=arguments,e=-1,r=_(t.length-S,0),n=Array(r);++e<r;)n[e]=t[S+e];e=-1;for(var o=Array(S+1);++e<S;)o[e]=t[e];return o[S]=n,function(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}(w,this,o)});t.exports=E}).call(this,r(1))},function(t,e,r){var n="undefined"!=typeof JSON?JSON:r(7);t.exports=function(t,e){e||(e={}),"function"==typeof e&&(e={cmp:e});var r=e.space||"";"number"==typeof r&&(r=Array(r+1).join(" "));var i,a="boolean"==typeof e.cycles&&e.cycles,c=e.replacer||function(t,e){return e},f=e.cmp&&(i=e.cmp,function(t){return function(e,r){var n={key:e,value:t[e]},o={key:r,value:t[r]};return i(n,o)}}),s=[];return function t(e,i,l,p){var y=r?"\n"+new Array(p+1).join(r):"",d=r?": ":":";if(l&&l.toJSON&&"function"==typeof l.toJSON&&(l=l.toJSON()),void 0!==(l=c.call(e,i,l))){if("object"!=typeof l||null===l)return n.stringify(l);if(o(l)){for(var v=[],h=0;h<l.length;h++){var b=t(l,h,l[h],p+1)||n.stringify(null);v.push(y+r+b)}return"["+v.join(",")+y+"]"}if(-1!==s.indexOf(l)){if(a)return n.stringify("__cycle__");throw new TypeError("Converting circular structure to JSON")}s.push(l);var _=u(l).sort(f&&f(l));for(v=[],h=0;h<_.length;h++){var g=t(l,i=_[h],l[i],p+1);if(g){var m=n.stringify(i)+d+g;v.push(y+r+m)}}return s.splice(s.indexOf(l),1),"{"+v.join(",")+y+"}"}}({"":t},"",t,0)};var o=Array.isArray||function(t){return"[object Array]"==={}.toString.call(t)},u=Object.keys||function(t){var e=Object.prototype.hasOwnProperty||function(){return!0},r=[];for(var n in t)e.call(t,n)&&r.push(n);return r}},function(t,e){function r(t){t=t||{},this.ms=t.min||100,this.max=t.max||1e4,this.factor=t.factor||2,this.jitter=t.jitter>0&&t.jitter<=1?t.jitter:0,this.attempts=0}t.exports=r,r.prototype.duration=function(){var t=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var e=Math.random(),r=Math.floor(e*this.jitter*t);t=0==(1&Math.floor(10*e))?t-r:t+r}return 0|Math.min(t,this.max)},r.prototype.reset=function(){this.attempts=0}},function(t,e,r){(function(t,r){var n=200,o="Expected a function",u="__lodash_hash_undefined__",i=1,a=2,c=1/0,f=9007199254740991,s="[object Arguments]",l="[object Array]",p="[object Boolean]",y="[object Date]",d="[object Error]",v="[object Function]",h="[object GeneratorFunction]",b="[object Map]",_="[object Number]",g="[object Object]",m="[object RegExp]",j="[object Set]",O="[object String]",w="[object Symbol]",S="[object ArrayBuffer]",E="[object DataView]",T=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,x=/^\w*$/,A=/^\./,P=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,q=/\\(\\)?/g,k=/^\[object .+?Constructor\]$/,C=/^(?:0|[1-9]\d*)$/,U={};U["[object Float32Array]"]=U["[object Float64Array]"]=U["[object Int8Array]"]=U["[object Int16Array]"]=U["[object Int32Array]"]=U["[object Uint8Array]"]=U["[object Uint8ClampedArray]"]=U["[object Uint16Array]"]=U["[object Uint32Array]"]=!0,U[s]=U[l]=U[S]=U[p]=U[E]=U[y]=U[d]=U[v]=U[b]=U[_]=U[g]=U[m]=U[j]=U[O]=U["[object WeakMap]"]=!1;var K="object"==typeof t&&t&&t.Object===Object&&t,D="object"==typeof self&&self&&self.Object===Object&&self,M=K||D||Function("return this")(),R=e&&!e.nodeType&&e,B=R&&"object"==typeof r&&r&&!r.nodeType&&r,F=B&&B.exports===R&&K.process,H=function(){try{return F&&F.binding("util")}catch(t){}}(),I=H&&H.isTypedArray;function $(t,e){for(var r=-1,n=e.length,o=t.length;++r<n;)t[o+r]=e[r];return t}function N(t,e){for(var r=-1,n=t?t.length:0;++r<n;)if(e(t[r],r,t))return!0;return!1}function Q(t){var e=!1;if(null!=t&&"function"!=typeof t.toString)try{e=!!(t+"")}catch(t){}return e}function L(t){var e=-1,r=Array(t.size);return t.forEach(function(t,n){r[++e]=[n,t]}),r}function J(t,e){return function(r){return t(e(r))}}function G(t){var e=-1,r=Array(t.size);return t.forEach(function(t){r[++e]=t}),r}var Y,z=Array.prototype,W=Function.prototype,V=Object.prototype,X=M["__core-js_shared__"],Z=(Y=/[^.]+$/.exec(X&&X.keys&&X.keys.IE_PROTO||""))?"Symbol(src)_1."+Y:"",tt=W.toString,et=V.hasOwnProperty,rt=V.toString,nt=RegExp("^"+tt.call(et).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),ot=M.Symbol,ut=M.Uint8Array,it=J(Object.getPrototypeOf,Object),at=V.propertyIsEnumerable,ct=z.splice,ft=Object.getOwnPropertySymbols,st=J(Object.keys,Object),lt=$t(M,"DataView"),pt=$t(M,"Map"),yt=$t(M,"Promise"),dt=$t(M,"Set"),vt=$t(M,"WeakMap"),ht=$t(Object,"create"),bt=Zt(lt),_t=Zt(pt),gt=Zt(yt),mt=Zt(dt),jt=Zt(vt),Ot=ot?ot.prototype:void 0,wt=Ot?Ot.valueOf:void 0,St=Ot?Ot.toString:void 0;function Et(t){var e=-1,r=t?t.length:0;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}function Tt(t){var e=-1,r=t?t.length:0;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}function xt(t){var e=-1,r=t?t.length:0;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}function At(t){var e=-1,r=t?t.length:0;for(this.__data__=new xt;++e<r;)this.add(t[e])}function Pt(t){this.__data__=new Tt(t)}function qt(t,e){var r=ne(t)||re(t)?function(t,e){for(var r=-1,n=Array(t);++r<t;)n[r]=e(r);return n}(t.length,String):[],n=r.length,o=!!n;for(var u in t)!e&&!et.call(t,u)||o&&("length"==u||Jt(u,n))||r.push(u);return r}function kt(t,e){for(var r=t.length;r--;)if(ee(t[r][0],e))return r;return-1}function Ct(t,e){for(var r=0,n=(e=Gt(e,t)?[e]:Bt(e)).length;null!=t&&r<n;)t=t[Xt(e[r++])];return r&&r==n?t:void 0}function Ut(t,e){return null!=t&&e in Object(t)}function Kt(t,e,r,n,o){return t===e||(null==t||null==e||!ae(t)&&!ce(e)?t!=t&&e!=e:function(t,e,r,n,o,u){var c=ne(t),f=ne(e),v=l,h=l;c||(v=(v=Lt(t))==s?g:v);f||(h=(h=Lt(e))==s?g:h);var T=v==g&&!Q(t),x=h==g&&!Q(e),A=v==h;if(A&&!T)return u||(u=new Pt),c||le(t)?Ft(t,e,r,n,o,u):function(t,e,r,n,o,u,c){switch(r){case E:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case S:return!(t.byteLength!=e.byteLength||!n(new ut(t),new ut(e)));case p:case y:case _:return ee(+t,+e);case d:return t.name==e.name&&t.message==e.message;case m:case O:return t==e+"";case b:var f=L;case j:var s=u&a;if(f||(f=G),t.size!=e.size&&!s)return!1;var l=c.get(t);if(l)return l==e;u|=i,c.set(t,e);var v=Ft(f(t),f(e),n,o,u,c);return c.delete(t),v;case w:if(wt)return wt.call(t)==wt.call(e)}return!1}(t,e,v,r,n,o,u);if(!(o&a)){var P=T&&et.call(t,"__wrapped__"),q=x&&et.call(e,"__wrapped__");if(P||q){var k=P?t.value():t,C=q?e.value():e;return u||(u=new Pt),r(k,C,n,o,u)}}if(!A)return!1;return u||(u=new Pt),function(t,e,r,n,o,u){var i=o&a,c=pe(t),f=c.length,s=pe(e).length;if(f!=s&&!i)return!1;for(var l=f;l--;){var p=c[l];if(!(i?p in e:et.call(e,p)))return!1}var y=u.get(t);if(y&&u.get(e))return y==e;var d=!0;u.set(t,e),u.set(e,t);for(var v=i;++l<f;){p=c[l];var h=t[p],b=e[p];if(n)var _=i?n(b,h,p,e,t,u):n(h,b,p,t,e,u);if(!(void 0===_?h===b||r(h,b,n,o,u):_)){d=!1;break}v||(v="constructor"==p)}if(d&&!v){var g=t.constructor,m=e.constructor;g!=m&&"constructor"in t&&"constructor"in e&&!("function"==typeof g&&g instanceof g&&"function"==typeof m&&m instanceof m)&&(d=!1)}return u.delete(t),u.delete(e),d}(t,e,r,n,o,u)}(t,e,Kt,r,n,o))}function Dt(t){return!(!ae(t)||(e=t,Z&&Z in e))&&(ue(t)||Q(t)?nt:k).test(Zt(t));var e}function Mt(t){return"function"==typeof t?t:null==t?de:"object"==typeof t?ne(t)?function(t,e){if(Gt(t)&&zt(e))return Wt(Xt(t),e);return function(r){var n=function(t,e,r){var n=null==t?void 0:Ct(t,e);return void 0===n?r:n}(r,t);return void 0===n&&n===e?function(t,e){return null!=t&&function(t,e,r){e=Gt(e,t)?[e]:Bt(e);var n,o=-1,u=e.length;for(;++o<u;){var i=Xt(e[o]);if(!(n=null!=t&&r(t,i)))break;t=t[i]}if(n)return n;return!!(u=t?t.length:0)&&ie(u)&&Jt(i,u)&&(ne(t)||re(t))}(t,e,Ut)}(r,t):Kt(e,n,void 0,i|a)}}(t[0],t[1]):function(t){var e=function(t){var e=pe(t),r=e.length;for(;r--;){var n=e[r],o=t[n];e[r]=[n,o,zt(o)]}return e}(t);if(1==e.length&&e[0][2])return Wt(e[0][0],e[0][1]);return function(r){return r===t||function(t,e,r,n){var o=r.length,u=o,c=!n;if(null==t)return!u;for(t=Object(t);o--;){var f=r[o];if(c&&f[2]?f[1]!==t[f[0]]:!(f[0]in t))return!1}for(;++o<u;){var s=(f=r[o])[0],l=t[s],p=f[1];if(c&&f[2]){if(void 0===l&&!(s in t))return!1}else{var y=new Pt;if(n)var d=n(l,p,s,t,e,y);if(!(void 0===d?Kt(p,l,n,i|a,y):d))return!1}}return!0}(r,t,e)}}(t):Gt(e=t)?(r=Xt(e),function(t){return null==t?void 0:t[r]}):function(t){return function(e){return Ct(e,t)}}(e);var e,r}function Rt(t){if(!ae(t))return function(t){var e=[];if(null!=t)for(var r in Object(t))e.push(r);return e}(t);var e=Yt(t),r=[];for(var n in t)("constructor"!=n||!e&&et.call(t,n))&&r.push(n);return r}function Bt(t){return ne(t)?t:Vt(t)}function Ft(t,e,r,n,o,u){var c=o&a,f=t.length,s=e.length;if(f!=s&&!(c&&s>f))return!1;var l=u.get(t);if(l&&u.get(e))return l==e;var p=-1,y=!0,d=o&i?new At:void 0;for(u.set(t,e),u.set(e,t);++p<f;){var v=t[p],h=e[p];if(n)var b=c?n(h,v,p,e,t,u):n(v,h,p,t,e,u);if(void 0!==b){if(b)continue;y=!1;break}if(d){if(!N(e,function(t,e){if(!d.has(e)&&(v===t||r(v,t,n,o,u)))return d.add(e)})){y=!1;break}}else if(v!==h&&!r(v,h,n,o,u)){y=!1;break}}return u.delete(t),u.delete(e),y}function Ht(t){return function(t,e,r){var n=e(t);return ne(t)?n:$(n,r(t))}(t,ye,Qt)}function It(t,e){var r,n,o=t.__data__;return("string"==(n=typeof(r=e))||"number"==n||"symbol"==n||"boolean"==n?"__proto__"!==r:null===r)?o["string"==typeof e?"string":"hash"]:o.map}function $t(t,e){var r=function(t,e){return null==t?void 0:t[e]}(t,e);return Dt(r)?r:void 0}Et.prototype.clear=function(){this.__data__=ht?ht(null):{}},Et.prototype.delete=function(t){return this.has(t)&&delete this.__data__[t]},Et.prototype.get=function(t){var e=this.__data__;if(ht){var r=e[t];return r===u?void 0:r}return et.call(e,t)?e[t]:void 0},Et.prototype.has=function(t){var e=this.__data__;return ht?void 0!==e[t]:et.call(e,t)},Et.prototype.set=function(t,e){return this.__data__[t]=ht&&void 0===e?u:e,this},Tt.prototype.clear=function(){this.__data__=[]},Tt.prototype.delete=function(t){var e=this.__data__,r=kt(e,t);return!(r<0||(r==e.length-1?e.pop():ct.call(e,r,1),0))},Tt.prototype.get=function(t){var e=this.__data__,r=kt(e,t);return r<0?void 0:e[r][1]},Tt.prototype.has=function(t){return kt(this.__data__,t)>-1},Tt.prototype.set=function(t,e){var r=this.__data__,n=kt(r,t);return n<0?r.push([t,e]):r[n][1]=e,this},xt.prototype.clear=function(){this.__data__={hash:new Et,map:new(pt||Tt),string:new Et}},xt.prototype.delete=function(t){return It(this,t).delete(t)},xt.prototype.get=function(t){return It(this,t).get(t)},xt.prototype.has=function(t){return It(this,t).has(t)},xt.prototype.set=function(t,e){return It(this,t).set(t,e),this},At.prototype.add=At.prototype.push=function(t){return this.__data__.set(t,u),this},At.prototype.has=function(t){return this.__data__.has(t)},Pt.prototype.clear=function(){this.__data__=new Tt},Pt.prototype.delete=function(t){return this.__data__.delete(t)},Pt.prototype.get=function(t){return this.__data__.get(t)},Pt.prototype.has=function(t){return this.__data__.has(t)},Pt.prototype.set=function(t,e){var r=this.__data__;if(r instanceof Tt){var o=r.__data__;if(!pt||o.length<n-1)return o.push([t,e]),this;r=this.__data__=new xt(o)}return r.set(t,e),this};var Nt=ft?J(ft,Object):ve,Qt=ft?function(t){for(var e=[];t;)$(e,Nt(t)),t=it(t);return e}:ve,Lt=function(t){return rt.call(t)};function Jt(t,e){return!!(e=null==e?f:e)&&("number"==typeof t||C.test(t))&&t>-1&&t%1==0&&t<e}function Gt(t,e){if(ne(t))return!1;var r=typeof t;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=t&&!fe(t))||(x.test(t)||!T.test(t)||null!=e&&t in Object(e))}function Yt(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||V)}function zt(t){return t==t&&!ae(t)}function Wt(t,e){return function(r){return null!=r&&(r[t]===e&&(void 0!==e||t in Object(r)))}}(lt&&Lt(new lt(new ArrayBuffer(1)))!=E||pt&&Lt(new pt)!=b||yt&&"[object Promise]"!=Lt(yt.resolve())||dt&&Lt(new dt)!=j||vt&&"[object WeakMap]"!=Lt(new vt))&&(Lt=function(t){var e=rt.call(t),r=e==g?t.constructor:void 0,n=r?Zt(r):void 0;if(n)switch(n){case bt:return E;case _t:return b;case gt:return"[object Promise]";case mt:return j;case jt:return"[object WeakMap]"}return e});var Vt=te(function(t){var e;t=null==(e=t)?"":function(t){if("string"==typeof t)return t;if(fe(t))return St?St.call(t):"";var e=t+"";return"0"==e&&1/t==-c?"-0":e}(e);var r=[];return A.test(t)&&r.push(""),t.replace(P,function(t,e,n,o){r.push(n?o.replace(q,"$1"):e||t)}),r});function Xt(t){if("string"==typeof t||fe(t))return t;var e=t+"";return"0"==e&&1/t==-c?"-0":e}function Zt(t){if(null!=t){try{return tt.call(t)}catch(t){}try{return t+""}catch(t){}}return""}function te(t,e){if("function"!=typeof t||e&&"function"!=typeof e)throw new TypeError(o);var r=function(){var n=arguments,o=e?e.apply(this,n):n[0],u=r.cache;if(u.has(o))return u.get(o);var i=t.apply(this,n);return r.cache=u.set(o,i),i};return r.cache=new(te.Cache||xt),r}function ee(t,e){return t===e||t!=t&&e!=e}function re(t){return function(t){return ce(t)&&oe(t)}(t)&&et.call(t,"callee")&&(!at.call(t,"callee")||rt.call(t)==s)}te.Cache=xt;var ne=Array.isArray;function oe(t){return null!=t&&ie(t.length)&&!ue(t)}function ue(t){var e=ae(t)?rt.call(t):"";return e==v||e==h}function ie(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=f}function ae(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function ce(t){return!!t&&"object"==typeof t}function fe(t){return"symbol"==typeof t||ce(t)&&rt.call(t)==w}var se,le=I?(se=I,function(t){return se(t)}):function(t){return ce(t)&&ie(t.length)&&!!U[rt.call(t)]};function pe(t){return oe(t)?qt(t):function(t){if(!Yt(t))return st(t);var e=[];for(var r in Object(t))et.call(t,r)&&"constructor"!=r&&e.push(r);return e}(t)}function ye(t){return oe(t)?qt(t,!0):Rt(t)}function de(t){return t}function ve(){return[]}r.exports=function(t,e){return null==t?{}:function(t,e,r){for(var n=-1,o=e.length,u={};++n<o;){var i=e[n],a=t[i];r(a,i)&&(u[i]=a)}return u}(t,Ht(t),Mt(e))}}).call(this,r(1),r(10)(t))},function(t,e,r){e.parse=r(8),e.stringify=r(9)},function(t,e){var r,n,o,u,i={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:"\n",r:"\r",t:"\t"},a=function(t){throw{name:"SyntaxError",message:t,at:r,text:o}},c=function(t){return t&&t!==n&&a("Expected '"+t+"' instead of '"+n+"'"),n=o.charAt(r),r+=1,n},f=function(){var t,e="";for("-"===n&&(e="-",c("-"));n>="0"&&n<="9";)e+=n,c();if("."===n)for(e+=".";c()&&n>="0"&&n<="9";)e+=n;if("e"===n||"E"===n)for(e+=n,c(),"-"!==n&&"+"!==n||(e+=n,c());n>="0"&&n<="9";)e+=n,c();if(t=+e,isFinite(t))return t;a("Bad number")},s=function(){var t,e,r,o="";if('"'===n)for(;c();){if('"'===n)return c(),o;if("\\"===n)if(c(),"u"===n){for(r=0,e=0;e<4&&(t=parseInt(c(),16),isFinite(t));e+=1)r=16*r+t;o+=String.fromCharCode(r)}else{if("string"!=typeof i[n])break;o+=i[n]}else o+=n}a("Bad string")},l=function(){for(;n&&n<=" ";)c()};u=function(){switch(l(),n){case"{":return function(){var t,e={};if("{"===n){if(c("{"),l(),"}"===n)return c("}"),e;for(;n;){if(t=s(),l(),c(":"),Object.hasOwnProperty.call(e,t)&&a('Duplicate key "'+t+'"'),e[t]=u(),l(),"}"===n)return c("}"),e;c(","),l()}}a("Bad object")}();case"[":return function(){var t=[];if("["===n){if(c("["),l(),"]"===n)return c("]"),t;for(;n;){if(t.push(u()),l(),"]"===n)return c("]"),t;c(","),l()}}a("Bad array")}();case'"':return s();case"-":return f();default:return n>="0"&&n<="9"?f():function(){switch(n){case"t":return c("t"),c("r"),c("u"),c("e"),!0;case"f":return c("f"),c("a"),c("l"),c("s"),c("e"),!1;case"n":return c("n"),c("u"),c("l"),c("l"),null}a("Unexpected '"+n+"'")}()}},t.exports=function(t,e){var i;return o=t,r=0,n=" ",i=u(),l(),n&&a("Syntax error"),"function"==typeof e?function t(r,n){var o,u,i=r[n];if(i&&"object"==typeof i)for(o in i)Object.prototype.hasOwnProperty.call(i,o)&&(void 0!==(u=t(i,o))?i[o]=u:delete i[o]);return e.call(r,n,i)}({"":i},""):i}},function(t,e){var r,n,o,u=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,i={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};function a(t){return u.lastIndex=0,u.test(t)?'"'+t.replace(u,function(t){var e=i[t];return"string"==typeof e?e:"\\u"+("0000"+t.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+t+'"'}t.exports=function(t,e,u){var i;if(r="",n="","number"==typeof u)for(i=0;i<u;i+=1)n+=" ";else"string"==typeof u&&(n=u);if(o=e,e&&"function"!=typeof e&&("object"!=typeof e||"number"!=typeof e.length))throw new Error("JSON.stringify");return function t(e,u){var i,c,f,s,l,p=r,y=u[e];switch(y&&"object"==typeof y&&"function"==typeof y.toJSON&&(y=y.toJSON(e)),"function"==typeof o&&(y=o.call(u,e,y)),typeof y){case"string":return a(y);case"number":return isFinite(y)?String(y):"null";case"boolean":case"null":return String(y);case"object":if(!y)return"null";if(r+=n,l=[],"[object Array]"===Object.prototype.toString.apply(y)){for(s=y.length,i=0;i<s;i+=1)l[i]=t(i,y)||"null";return f=0===l.length?"[]":r?"[\n"+r+l.join(",\n"+r)+"\n"+p+"]":"["+l.join(",")+"]",r=p,f}if(o&&"object"==typeof o)for(s=o.length,i=0;i<s;i+=1)"string"==typeof(c=o[i])&&(f=t(c,y))&&l.push(a(c)+(r?": ":":")+f);else for(c in y)Object.prototype.hasOwnProperty.call(y,c)&&(f=t(c,y))&&l.push(a(c)+(r?": ":":")+f);return f=0===l.length?"{}":r?"{\n"+r+l.join(",\n"+r)+"\n"+p+"}":"{"+l.join(",")+"}",r=p,f}}("",{"":t})}},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},function(t,e,r){"use strict";r.r(e);var n={};r.r(n),r.d(n,"REQUEST_ASYNC",function(){return i}),r.d(n,"REQUEST_START",function(){return a}),r.d(n,"REQUEST_SUCCESS",function(){return c}),r.d(n,"REQUEST_FAILURE",function(){return f}),r.d(n,"CANCEL_QUERY",function(){return s}),r.d(n,"MUTATE_ASYNC",function(){return l}),r.d(n,"MUTATE_START",function(){return p}),r.d(n,"MUTATE_SUCCESS",function(){return y}),r.d(n,"MUTATE_FAILURE",function(){return d}),r.d(n,"RESET",function(){return v}),r.d(n,"UPDATE_ENTITIES",function(){return h});var o={};r.r(o),r.d(o,"responseBody",function(){return j}),r.d(o,"responseText",function(){return O}),r.d(o,"responseHeaders",function(){return w});var u={};r.r(u),r.d(u,"isFinished",function(){return S}),r.d(u,"isPending",function(){return E}),r.d(u,"status",function(){return T}),r.d(u,"headers",function(){return x}),r.d(u,"lastUpdated",function(){return A}),r.d(u,"queryCount",function(){return P});var i="@@query/REQUEST_ASYNC",a="@@query/REQUEST_START",c="@@query/REQUEST_SUCCESS",f="@@query/REQUEST_FAILURE",s="@@query/CANCEL_QUERY",l="@@query/MUTATE_ASYNC",p="@@query/MUTATE_START",y="@@query/MUTATE_SUCCESS",d="@@query/MUTATE_FAILURE",v="@@query/RESET",h="@@query/UPDATE_ENTITIES",b={DELETE:"DELETE",GET:"GET",HEAD:"HEAD",POST:"POST",PUT:"PUT",PATCH:"PATCH"},_=r(4),g=r.n(_),m=function(t){if(!t)return null;var e=t.url,r=t.body,n=t.queryKey;return null!=n?n:g()({url:e,body:r})},j=function(t,e){var r,n=m(e);return null!=(r=t)&&null!=(r=r[n])?r.responseBody:r},O=function(t,e){var r,n=m(e);return null!=(r=t)&&null!=(r=r[n])?r.responseText:r},w=function(t,e){var r,n=m(e);return null!=(r=t)&&null!=(r=r[n])?r.responseHeaders:r},S=function(t,e){var r,n=m(e);return(null!=(r=t)&&null!=(r=r[n])?r.isFinished:r)||!1},E=function(t,e){var r,n=m(e);return(null!=(r=t)&&null!=(r=r[n])?r.isPending:r)||!1},T=function(t,e){var r,n=m(e);return null!=(r=t)&&null!=(r=r[n])?r.status:r},x=function(t,e){var r,n=m(e);return null!=(r=t)&&null!=(r=r[n])?r.headers:r},A=function(t,e){var r,n=m(e);return null!=(r=t)&&null!=(r=r[n])?r.lastUpdated:r},P=function(t,e){var r,n=m(e);return(null!=(r=t)&&null!=(r=r[n])?r.queryCount:r)||0};function q(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable}))),n.forEach(function(e){k(t,e,r[e])})}return t}function k(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var C={},U=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:C,e=arguments.length>1?arguments[1]:void 0;switch(e.type){case v:return{};case p:case a:var r=e.queryKey;return q({},t,k({},r,{url:e.url,isFinished:!1,isPending:!0,isMutation:e.type===p,queryCount:t[r]?t[r].queryCount+1:1}));case c:case d:case y:case f:var n=e.queryKey;return q({},t,k({},n,q({},t[n],{isFinished:!0,isPending:!1,lastUpdated:e.time,status:e.status,headers:e.responseHeaders})));case s:var o=e.queryKey;return t[o].isPending?q({},t,k({},o,q({},t[o],{isFinished:!0,isPending:!1,status:0}))):t;default:return t}},K=function(t,e,r){return Object.keys(t||{}).reduce(function(n,o){return n[o]=t[o]((e||{})[o],(r||{})[o]),n},{})},D=function(t,e){return Object.keys(t).reduce(function(r,n){return r[n]=t[n](e[n]),r},{})};function M(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable}))),n.forEach(function(e){R(t,e,r[e])})}return t}function R(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var B={},F=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:B,e=arguments.length>1?arguments[1]:void 0;return e.type===v?"entities"in e?e.entities:B:e.type===p&&e.optimisticEntities?M({},t,e.optimisticEntities):e.type===d&&e.rolledBackEntities?M({},t,e.rolledBackEntities):e.type===c||e.type===y?M({},t,e.entities):e.type===h?M({},t,D(e.update,t)):t};function H(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable}))),n.forEach(function(e){I(t,e,r[e])})}return t}function I(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var $={},N=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:$,e=arguments.length>1?arguments[1]:void 0;switch(e.type){case v:return{};case p:case a:var r=e.queryKey,n=H({},t);return delete n[r],n;case d:case f:var o=e.queryKey;return H({},t,I({},o,H({},t[o],{responseBody:e.responseBody,responseText:e.responseText,responseHeaders:e.responseHeaders})));default:return t}},Q=r(5),L=r.n(Q),J=r(0),G=r.n(J),Y=r(2),z=r.n(Y),W=r(3),V=r.n(W),X=r(6),Z=r.n(X),tt=function(t){var e=t.body,r=t.force,n=t.meta,o=t.options,u=t.queryKey,a=t.retry,c=t.transform,f=t.update,s=t.url,l=t.unstable_preDispatchCallback;return{type:i,body:e,force:r,queryKey:u,meta:n,options:o,retry:a,transform:c,update:f,url:s,unstable_preDispatchCallback:l}},et=function(t){var e=t.body,r=t.meta,n=t.optimisticUpdate,o=t.options,u=t.queryKey,i=t.rollback,a=t.transform,c=t.update,f=t.url;return{type:l,body:e,meta:r,optimisticUpdate:n,options:o,queryKey:u,rollback:i,transform:a,update:c,url:f}},rt=function(t){return{type:s,queryKey:t}},nt=function(t){return{type:h,update:t}};function ot(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function ut(t,e){if(null==t)return{};var r,n,o=function(t,e){if(null==t)return{};var r,n,o={},u=Object.keys(t);for(n=0;n<u.length;n++)r=u[n],e.indexOf(r)>=0||(o[r]=t[r]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(n=0;n<u.length;n++)r=u[n],e.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}var it={backoff:{maxAttempts:5,minDuration:300,maxDuration:5e3},retryableStatusCodes:[0,408,429,503,504],getQueryKey:m},at=function(t){return Z()(t,function(t){return t.isPending})},ct=function(t){return t>=200&&t<300},ft=function(t){return t},st=function(t,e,r,n){var o={},u=function(t){var e=o[t];e&&(e.abort(),delete o[t])};return function(h){var _=h.dispatch,g=h.getState;return function(h){return function(m){var j,O=function(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable}))),n.forEach(function(e){ot(t,e,r[e])})}return t}({},it,n),w=O.getQueryKey,S=ut(O,["getQueryKey"]);switch(m.type){case i:var E=m.url,T=m.body,x=m.force,A=m.retry,P=m.transform,q=void 0===P?ft:P,k=m.update,C=m.options,U=void 0===C?{}:C,M=m.meta;G()(!!E,"Missing required `url` field in action handler");var R=w(m),B=g(),F=e(B)[R],H=z()(F,["isPending"]),I=z()(F,["status"]),$=ct(I);(x||!F||A&&!H&&!$)&&(j=new Promise(function(e){var n=new Date,u=U.method,i=void 0===u?b.GET:u,s=0,l=new L.a({min:S.backoff.minDuration,max:S.backoff.maxDuration});!function u(){var p=t(E,i,{body:T,headers:U.headers,credentials:U.credentials});o[R]=p,_(function(t){var e=t.body,r=t.meta,n=t.queryKey,o=t.url;return{type:a,url:o,body:e,meta:r,queryKey:n}}({body:T,meta:M,queryKey:R,url:E})),s+=1,p.execute(function(t,i,a,p,y){if(S.retryableStatusCodes.includes(i)&&s<S.backoff.maxAttempts)setTimeout(u,l.duration());else{var d,v,h=new Date-n;if(m.unstable_preDispatchCallback&&m.unstable_preDispatchCallback(),t||!ct(i))_(function(t){var e=t.body,r=t.duration,n=t.meta,o=t.queryKey,u=t.responseBody,i=t.responseHeaders,a=t.responseText,c=t.status,s=t.url;return{type:f,url:s,body:e,duration:r,status:c,responseBody:u,responseText:a,responseHeaders:i,meta:n,queryKey:o,time:Date.now()}}({body:T,duration:h,meta:M,queryKey:R,responseBody:a,responseHeaders:y,status:i,responseText:p,url:E})),e({body:a,duration:h,status:i,text:p,headers:y});else{var b=g(),j=r(b);d=q(a,p),v=K(k,j,d),_(function(t){var e=t.body,r=t.duration,n=t.entities,o=t.meta,u=t.queryKey,i=t.responseBody,a=t.responseHeaders,f=t.responseText,s=t.status,l=t.url;return{type:c,url:l,body:e,duration:r,status:s,entities:n,responseBody:i,responseText:f,responseHeaders:a,meta:o,queryKey:u,time:Date.now()}}({body:T,duration:h,meta:M,entities:v,queryKey:R,responseBody:a,responseHeaders:y,status:i,responseText:p,url:E})),e({body:a,duration:h,status:i,text:p,transformed:d,entities:v,headers:y})}delete o[R]}})}()}));break;case l:var N=m.url,Q=m.transform,J=void 0===Q?ft:Q,Y=m.update,W=m.rollback,X=m.body,Z=m.optimisticUpdate,tt=m.options,et=void 0===tt?{}:tt,rt=m.meta;G()(!!N,"Missing required `url` field in action handler");var nt,st=g(),lt=r(st);Z&&(nt=D(Z,lt));var pt=w(m);j=new Promise(function(e){var n=new Date,u=et.method,i=t(N,void 0===u?b.POST:u,{body:X,headers:et.headers,credentials:et.credentials});o[pt]=i,_(function(t){var e=t.body,r=t.meta,n=t.optimisticEntities,o=t.queryKey,u=t.url;return{type:p,url:u,body:e,optimisticEntities:n,queryKey:o,meta:r}}({body:X,meta:rt,optimisticEntities:nt,queryKey:pt,url:N})),i.execute(function(t,u,i,a,c){var f,s,l,p=new Date-n,v=g(),h=r(v);m.unstable_preDispatchCallback&&m.unstable_preDispatchCallback(),t||!ct(u)?(Z&&(l=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0;return Object.keys(e).reduce(function(n,o){return t[o]?n[o]=t[o](e[o],r[o]):n[o]=e[o],n},{})}(W,V()(lt,Object.keys(nt)),V()(h,Object.keys(nt)))),_(function(t){var e=t.body,r=t.duration,n=t.meta,o=t.queryKey,u=t.responseBody,i=t.responseHeaders,a=t.responseText,c=t.rolledBackEntities,f=t.status,s=t.url;return{type:d,url:s,body:e,duration:r,status:f,responseBody:u,responseText:a,responseHeaders:i,rolledBackEntities:c,queryKey:o,time:Date.now(),meta:n}}({body:X,duration:p,meta:rt,queryKey:pt,responseBody:i,responseHeaders:c,status:u,responseText:a,rolledBackEntities:l,url:N})),e({body:i,duration:p,status:u,text:a,headers:c})):(f=J(i,a),s=K(Y,h,f),_(function(t){var e=t.body,r=t.duration,n=t.entities,o=t.meta,u=t.queryKey,i=t.responseBody,a=t.responseHeaders,c=t.responseText,f=t.status,s=t.url;return{type:y,url:s,body:e,duration:r,status:f,responseBody:i,responseText:c,responseHeaders:a,entities:n,queryKey:u,time:Date.now(),meta:o}}({url:N,body:X,duration:p,status:u,entities:s,queryKey:pt,responseBody:i,responseText:a,responseHeaders:c,meta:rt})),e({body:i,duration:p,status:u,text:a,transformed:f,entities:s,headers:c})),delete o[pt]})});break;case s:var yt=m.queryKey;G()(!!yt,"Missing required `queryKey` field in action handler");var dt=g(),vt=e(dt);yt in at(vt)?(u(yt),j=h(m)):(console.warn("Trying to cancel a request that is not in flight: ",yt),j=null);break;case v:var ht=g(),bt=e(ht),_t=at(bt);for(var gt in _t)_t.hasOwnProperty(gt)&&u(gt);j=h(m);break;default:j=h(m)}return j}}}};r.d(e,"getQueryKey",function(){return m}),r.d(e,"queriesReducer",function(){return U}),r.d(e,"entitiesReducer",function(){return F}),r.d(e,"errorsReducer",function(){return N}),r.d(e,"queryMiddleware",function(){return st}),r.d(e,"cancelQuery",function(){return rt}),r.d(e,"mutateAsync",function(){return et}),r.d(e,"requestAsync",function(){return tt}),r.d(e,"updateEntities",function(){return nt}),r.d(e,"actionTypes",function(){return n}),r.d(e,"errorSelectors",function(){return o}),r.d(e,"httpMethods",function(){return b}),r.d(e,"querySelectors",function(){return u})}])});
{
"name": "redux-query",
"version": "3.0.0-alpha.4",
"version": "3.0.0-alpha.5",
"description": "A library for querying and managing network state in Redux applications",

@@ -35,2 +35,3 @@ "homepage": "https://github.com/amplitude/redux-query",

"backo": "^1.1.0",
"idx": "^2.5.6",
"invariant": "^2.2.0",

@@ -50,11 +51,15 @@ "json-stable-stringify": "^1.0.0",

"@babel/preset-env": "^7.0.0",
"@babel/preset-flow": "^7.0.0",
"@babel/register": "^7.0.0",
"babel-core": "^7.0.0-bridge.0",
"babel-eslint": "^7.1.1",
"babel-eslint": "^10.0.1",
"babel-jest": "^24.8.0",
"babel-loader": "^8.0.2",
"babel-plugin-idx": "^2.4.0",
"cross-env": "^1.0.7",
"eslint": "^5.6.0",
"eslint": "^5.11.1",
"eslint-plugin-flowtype": "^3.10.1",
"eslint-plugin-import": "^2.14.0",
"jest": "^24.8.0",
"redux": "^4.0.1",
"rimraf": "^2.4.3",

@@ -70,3 +75,3 @@ "terser-webpack-plugin": "^1.3.0",

},
"gitHead": "d7b03cb4cbd9ead414d8db2c273058f970538867"
"gitHead": "d944c98a7b105a002a23fd62540f8aa1ec2866e7"
}
import * as actionTypes from '../constants/action-types';
export const requestStart = ({ body, meta, networkHandler, queryKey, url }) => {
export const requestStart = ({ body, meta, queryKey, url }) => {
return {

@@ -8,3 +8,2 @@ type: actionTypes.REQUEST_START,

body,
networkHandler,
meta,

@@ -69,3 +68,3 @@ queryKey,

export const mutateStart = ({ body, meta, networkHandler, optimisticEntities, queryKey, url }) => {
export const mutateStart = ({ body, meta, optimisticEntities, queryKey, url }) => {
return {

@@ -75,3 +74,2 @@ type: actionTypes.MUTATE_START,

body,
networkHandler,
optimisticEntities,

@@ -78,0 +76,0 @@ queryKey,

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

export default {
// @flow
const HttpMethods = {
DELETE: 'DELETE',

@@ -9,1 +11,5 @@ GET: 'GET',

};
export type HttpMethod = $Keys<typeof HttpMethods>;
export default HttpMethods;

@@ -46,5 +46,17 @@ import Backoff from 'backo';

const queryMiddleware = (networkInterface, queriesSelector, entitiesSelector, customConfig) => {
const networkHandlersByQueryKey = {};
const abortQuery = queryKey => {
const networkHandler = networkHandlersByQueryKey[queryKey];
if (networkHandler) {
networkHandler.abort();
delete networkHandlersByQueryKey[queryKey];
}
};
return ({ dispatch, getState }) => next => action => {
let returnValue;
const { getQueryKey, ...config } = { ...defaultConfig, ...customConfig };
switch (action.type) {

@@ -92,2 +104,4 @@ case actionTypes.REQUEST_ASYNC: {

networkHandlersByQueryKey[queryKey] = networkHandler;
dispatch(

@@ -97,3 +111,2 @@ requestStart({

meta,
networkHandler,
queryKey,

@@ -178,2 +191,4 @@ url,

}
delete networkHandlersByQueryKey[queryKey];
});

@@ -221,2 +236,4 @@ };

networkHandlersByQueryKey[queryKey] = networkHandler;
// Note: only the entities that are included in `optimisticUpdate` will be passed along in the

@@ -228,3 +245,2 @@ // `mutateStart` action as `optimisticEntities`

meta,
networkHandler,
optimisticEntities,

@@ -310,2 +326,4 @@ queryKey,

}
delete networkHandlersByQueryKey[queryKey];
});

@@ -325,3 +343,3 @@ });

if (queryKey in pendingQueries) {
pendingQueries[queryKey].networkHandler.abort();
abortQuery(queryKey);
returnValue = next(action);

@@ -343,3 +361,3 @@ } else {

if (pendingQueries.hasOwnProperty(queryKey)) {
pendingQueries[queryKey].networkHandler.abort();
abortQuery(queryKey);
}

@@ -346,0 +364,0 @@ }

@@ -0,6 +1,19 @@

// @flow
import * as actionTypes from '../constants/action-types';
export type State = {
[key: string]: {|
responseBody: ?{ [key: string]: any },
responseHeaders: ?{ [key: string]: any },
responseText: ?string,
|},
};
// $FlowFixMe
type Action = any;
const initialState = {};
const queries = (state = initialState, action) => {
const queries = (state: State = initialState, action: Action) => {
switch (action.type) {

@@ -7,0 +20,0 @@ case actionTypes.RESET: {

@@ -0,6 +1,24 @@

// @flow
import * as actionTypes from '../constants/action-types';
export type State = {
[key: string]: {|
headers: ?{ [key: string]: any },
isFinished: boolean,
isMutation: boolean,
isPending: boolean,
lastUpdated: number,
queryCount: number,
status: number,
url: string,
|},
};
// $FlowFixMe
type Action = any;
const initialState = {};
const queries = (state = initialState, action) => {
const queries = (state: State = initialState, action: Action) => {
switch (action.type) {

@@ -20,3 +38,2 @@ case actionTypes.RESET: {

isPending: true,
networkHandler: action.networkHandler,
isMutation: action.type === actionTypes.MUTATE_START,

@@ -23,0 +40,0 @@ queryCount: state[queryKey] ? state[queryKey].queryCount + 1 : 1,

@@ -1,27 +0,31 @@

import get from 'lodash.get';
// @flow
import idx from 'idx';
import type { State as ErrorsState } from '../reducers/errors';
import { getQueryKey } from '../lib/query-key';
import type { QueryConfig } from '../types';
export const responseBody = (errorsState, queryConfig) => {
if (queryConfig) {
const queryKey = getQueryKey(queryConfig);
export const responseBody = (
errorsState: ErrorsState,
queryConfig: QueryConfig,
): ?{ [key: string]: any } => {
const queryKey = getQueryKey(queryConfig);
return get(errorsState, [queryKey, 'responseBody']);
}
return idx(errorsState, _ => _[queryKey].responseBody);
};
export const responseText = (errorsState, queryConfig) => {
if (queryConfig) {
const queryKey = getQueryKey(queryConfig);
export const responseText = (errorsState: ErrorsState, queryConfig: QueryConfig): ?string => {
const queryKey = getQueryKey(queryConfig);
return get(errorsState, [queryKey, 'responseText']);
}
return idx(errorsState, _ => _[queryKey].responseText);
};
export const responseHeaders = (errorsState, queryConfig) => {
if (queryConfig) {
const queryKey = getQueryKey(queryConfig);
export const responseHeaders = (
errorsState: ErrorsState,
queryConfig: QueryConfig,
): ?{ [key: string]: any } => {
const queryKey = getQueryKey(queryConfig);
return get(errorsState, [queryKey, 'responseHeaders']);
}
return idx(errorsState, _ => _[queryKey].responseHeaders);
};

@@ -1,51 +0,46 @@

import get from 'lodash.get';
// @flow
import idx from 'idx';
import type { State as QueriesState } from '../reducers/queries';
import { getQueryKey } from '../lib/query-key';
import type { QueryConfig } from '../types';
export const isFinished = (queriesState, queryConfig) => {
if (queryConfig) {
const queryKey = getQueryKey(queryConfig);
export const isFinished = (queriesState: QueriesState, queryConfig: QueryConfig): boolean => {
const queryKey = getQueryKey(queryConfig);
return get(queriesState, [queryKey, 'isFinished']);
}
return idx(queriesState, _ => _[queryKey].isFinished) || false;
};
export const isPending = (queriesState, queryConfig) => {
if (queryConfig) {
const queryKey = getQueryKey(queryConfig);
export const isPending = (queriesState: QueriesState, queryConfig: QueryConfig): boolean => {
const queryKey = getQueryKey(queryConfig);
return get(queriesState, [queryKey, 'isPending']);
}
return idx(queriesState, _ => _[queryKey].isPending) || false;
};
export const status = (queriesState, queryConfig) => {
if (queryConfig) {
const queryKey = getQueryKey(queryConfig);
export const status = (queriesState: QueriesState, queryConfig: QueryConfig): ?number => {
const queryKey = getQueryKey(queryConfig);
return get(queriesState, [queryKey, 'status']);
}
return idx(queriesState, _ => _[queryKey].status);
};
export const headers = (queriesState, queryConfig) => {
if (queryConfig) {
const queryKey = getQueryKey(queryConfig);
export const headers = (
queriesState: QueriesState,
queryConfig: QueryConfig,
): ?{ [key: string]: any } => {
const queryKey = getQueryKey(queryConfig);
return get(queriesState, [queryKey, 'headers']);
}
return idx(queriesState, _ => _[queryKey].headers);
};
export const lastUpdated = (queriesState, queryConfig) => {
if (queryConfig) {
const queryKey = getQueryKey(queryConfig);
export const lastUpdated = (queriesState: QueriesState, queryConfig: QueryConfig): ?number => {
const queryKey = getQueryKey(queryConfig);
return get(queriesState, [queryKey, 'lastUpdated']);
}
return idx(queriesState, _ => _[queryKey].lastUpdated);
};
export const queryCount = (queriesState, queryConfig) => {
if (queryConfig) {
const queryKey = getQueryKey(queryConfig);
export const queryCount = (queriesState: QueriesState, queryConfig: QueryConfig): number => {
const queryKey = getQueryKey(queryConfig);
return get(queriesState, [queryKey, 'queryCount']);
}
return idx(queriesState, _ => _[queryKey].queryCount) || 0;
};

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc