封装网络请求

master_basic
鲁誉程 12 months ago
parent a1afb778ea
commit 62e1bf1a66

@ -0,0 +1,11 @@
import GlobalConfig from '../src/utils/env/dev';
const proxy = {
'/api': {
target: GlobalConfig['PROXY_SERVER'],
changeOrigin: true,
withCredentials: true,
secure: false,
cookieDomainRewrite: 'localhost',
}
};
export default proxy;

@ -11,6 +11,7 @@
"dependencies": {
"antd": "^5.11.2",
"dayjs": "^1.11.10",
"dva": "^2.4.1",
"moment": "^2.29.4",
"umi": "^4.0.88"
},

@ -2,6 +2,7 @@ import { FC, useEffect, useState } from 'react';
import styles from './index.less';
import { Input } from 'antd';
import ButtonComp from '@/components/ButtonComp';
import { deviceInstall_deviceInstall } from '@/services/api';
interface PageProps {
}
@ -27,8 +28,15 @@ const DeviceInstall: FC<PageProps> = ({ }) => {
</div>
<div className='flex_jE' style={{ margin: '30px 0' }}>
<ButtonComp style={{ marginRight: 20 }} text={'数据加载'} onClick={() => {}} />
<ButtonComp text={'数据安装'} onClick={() =>{}} />
<ButtonComp style={{ marginRight: 20 }} text={'数据加载'} onClick={() => {
}} />
<ButtonComp text={'数据安装'} onClick={() =>{
deviceInstall_deviceInstall({}).then((res) => {
console.log("Res",res);
})
}} />
</div>
<div className={styles.title1}></div>

@ -0,0 +1,15 @@
// --------------------------初装系统---------------------------
// 数据安装
export async function deviceInstall_deviceInstall(data: any) {
return postRequest(`/deviceInit/deviceInstall.json`, data);
}
// 设备初装
export async function deviceInit_init(data: any) {
return postRequest(`/deviceInit/init.json`, data);
}
// 开机认证
export async function college_table_query(params: any) {
return getRequest(`/deviceInit/powerOnAuth.json`, params);
}

@ -1,442 +0,0 @@
// import { fetch } from 'dva';
import { Modal, notification } from 'antd';
import hash from 'hash.js';
import { getDvaApp, history } from 'umi';
import ENV from './env/dev';
import { setHeader } from '.';
let modalConfirm: any;
const codeMessage: any = {
200: '服务器成功返回请求的数据。',
201: '新建或修改数据成功。',
202: '一个请求已经进入后台排队(异步任务)。',
204: '删除数据成功。',
400: '发出的请求有错误,服务器没有进行新建或修改数据的操作。',
401: '用户没有权限(令牌、用户名、密码错误)。',
403: '用户得到授权,但是访问是被禁止的。',
404: '发出的请求针对的是不存在的记录,服务器没有进行操作。',
406: '请求的格式不可得。',
410: '请求的资源被永久删除,且不会再得到的。',
422: '当创建一个对象时,发生一个验证错误。',
500: '服务器发生错误,请检查服务器。',
502: '网关错误。',
503: '服务不可用,服务器暂时过载或维护。',
504: '网关超时。',
};
interface Response {
status: number;
statusText: string;
json: any;
message: string;
}
interface Params {
[key: string]: any;
}
const checkStatus = async (response: Response, responseData: any) => {
if (response.status >= 200 && response.status < 300) {
return response;
}
// debugger;
const errortext = codeMessage[response.status] || response.statusText;
let text;
var resJson = response.json();
await resJson.then((resolve: any, reject: any) => {
setTimeout(() => {
let app = getDvaApp();
// reportData(ENV.REPORT_SERVER + "/report/error", {
// code: resolve.code,
// status: response.status,
// message: resolve.message,
// requestData: { ...responseData, cookie: document.cookie },
// responseData: { ...response, ...resolve },
// user: app._store.getState().user.userInfo
// })
}, 400);
text = resolve.message;
notification.error({
style: { wordBreak: 'break-all' },
// duration: null,
message: resolve.message || `请求错误 ${response.status}: ${response.message}`,
description: resolve.message ? '' : errortext,
});
});
const error: any = new Error(errortext);
error.name = response.status;
error.response = response;
throw {
data: response,
code: response.status,
message: text || errortext,
};
};
const cachedSave = (response: any, hashcode: any) => {
const contentType = response.headers.get('Content-Type');
if (contentType && contentType.match(/application\/json/i)) {
response
.clone()
.text()
.then(() => {
// sessionStorage.setItem(hashcode, content)
// sessionStorage.setItem(`${hashcode}:timestamp`, Date.now())
});
}
return response;
};
export const parseParams = (param: Params) => {
param = param || {};
// param.domain = window.location.host
let paramStr = '';
for (let key in param) {
if (typeof param[key] === 'object') {
if (Array.isArray(param[key])) {
param[key].forEach((element: string, k: number) => {
paramStr += '&' + key + `[]=` + element;
});
}
} else {
// if ((param[key]) || param[key] === 0)
paramStr += '&' + key + '=' + param[key];
}
}
return paramStr.substr(1);
};
export default function request(url: string, option: any, flag?: boolean, ismin?: boolean) {
!option.method ? (option.method = 'get') : '';
option.method = option.method.toUpperCase();
option.mode = 'cors';
const options = {
...option,
};
if (options.body) {
options.body.is_test = 1;
options.body.is_admin = true;
} else if (options.params) {
options.params.is_test = 1;
options.params.is_admin = true;
} else {
options.params = { is_test: 1, is_admin: true };
}
// options.domain = window.location.host
const fingerprint = url + (options.body ? JSON.stringify(options.body) : '');
const hashcode = hash.sha256().update(fingerprint).digest('hex');
const defaultOptions = {
credentials: 'include',
withCredentials: true,
};
let newOptions = { ...defaultOptions, ...options };
if (
newOptions.method === 'POST' ||
newOptions.method === 'PUT' ||
newOptions.method === 'PATCH' ||
newOptions.method === 'DELETE'
) {
if (!flag) {
newOptions.headers = {
Accept: 'application/json',
'Content-Type': 'application/json; charset=utf-8',
...newOptions.headers,
};
newOptions.body = JSON.stringify(options.body);
} else {
newOptions.headers = {
...newOptions.headers,
};
newOptions.body = options.body;
}
}
if (newOptions.method == 'GET' || newOptions.method == 'DELETE') {
newOptions.headers = {
Accept: 'application/json',
'Content-Type': 'application/json; charset=utf-8',
...newOptions.headers,
};
if (options.params) url += '?' + parseParams(options.params);
}
// newOptions.headers.withCredentials=true;
// newOptions.headers.Authorization =
// 'Bearer 09cb06de7874a0cfae0608ba5126b3b30dcb5d2a'
// if (localStorage.getItem('xhr-user-info')) {
// const token = JSON.parse(localStorage.getItem('xhr-user-info')).apiToken
// newOptions.headers.Authorization = 'Bearer ' + token
// }
const expirys = options.expirys && 60;
/**
* @description:
* @param {type}
* @return:
*/
enum ContentType {
json = 'application/json;charset=UTF-8',
form = 'application/x-www-form-urlencoded; charset=UTF-8',
}
/**
* @description: requestmethod
* @param {type}
* @return:
*/
enum HttpMethod {
get = 'GET',
post = 'POST',
}
/**
* @description: header
* @param {type}
* @return:
*/
interface IHeader {
Accept?: string;
'Content-Type': string;
[propName: string]: any;
}
/**
* @description: fetch
* @param {type}
* @return:
*/
interface IReqConfig {
method?: string;
credentials?: string;
headers?: IHeader;
body?: any;
}
interface IHttp {
getFetch<R, P = {}>(url: string, params?: P, options?: RequestInit): Promise<R>;
// getFetchJsonp<R,P>(url: string, params?:P, options?:RequestInit): Promise<R>;
postFetch<R, P = {}>(url: string, params?: P): Promise<R>;
}
// if (options.expirys !== false) {
// const cached = sessionStorage.getItem(hashcode)
// const whenCached = sessionStorage.getItem(`${hashcode}:timestamp`)
// if (cached !== null && whenCached !== null) {
// const age = (Date.now() - whenCached) / 1000
// if (age < expirys) {
// const response = new Response(new Blob([cached]))
// return response.json()
// }
// sessionStorage.removeItem(hashcode)
// sessionStorage.removeItem(`${hashcode}:timestamp`)
// }
// }
const downloadFile = async (response: any) => {
const d = await response.arrayBuffer();
let fileName: any;
const blob = new Blob([d]);
try {
fileName = response.headers
.get('Content-Disposition')
.split(';')[1]
.replace('filename=', '')
.replace(/[\s+,\',\",\,\,\“,\”,\<,\>,\《,\》]/g, '');
} catch (e) {
fileName = 'userfiles.zip';
}
const a = document.createElement('a');
const url = window.URL.createObjectURL(blob);
const filename = fileName;
a.href = url;
a.download = filename;
a.click();
window.URL.revokeObjectURL(url);
return d;
};
// const timenow = Date.now();
// const stringToSign =
// "method=" + newOptions.method + "&"+
// (newOptions.params ? parseParamsStr(newOptions.params) + "&" : "") +
// (newOptions.body ? parseParamsStr(newOptions.body) : "") +
// "ak=e83900ca9be33747397cc81a8f68ac11" + "&sk=6de3a75ae5718cde1e0907a593afd01f&time=" + timenow;
// newOptions.headers["X-EDU-Timestamp"] = timenow;
// newOptions.headers["X-EDU-Signature"] = md5(Base64.encode(stringToSign));
setHeader(newOptions, url);
let prefixUrl = ENV.PROXY_SERVER;
if ((window as any).ENV === 'dev' || url.startsWith('http')) prefixUrl = '';
if (ismin) prefixUrl = '';
return fetch(prefixUrl + url, newOptions)
.then((response: any) => checkStatus(response, { url: ENV.PROXY_SERVER + url, ...newOptions }))
.then((response: any) => cachedSave(response, hashcode))
.then(async (response: any) => {
if (response.status === 204) {
return response.text();
}
let d;
if (response.headers.get('content-type').indexOf('application/json') > -1) {
d = await response.json();
} else if (newOptions.headers['Content-Type'] === 'application/xml') {
d = await response.text();
} else if (options.body?.autoDownload || options.params?.autoDownload) {
d = await downloadFile(response);
} else {
d = await response.arrayBuffer();
}
try {
if (
d.status === 401 &&
(!newOptions.params?.hidePopLogin || !newOptions.body?.hidePopLogin)
) {
getDvaApp()._store.dispatch({
type: 'user/showPopLogin',
payload: {
showPopLogin: true,
showClosable: true,
},
});
}
if (d.status === 402) {
if (localStorage.getItem('addinfo') === '2') {
//弹窗 填充信息
getDvaApp()._store.dispatch({
type: 'shixunHomeworks/setActionTabs',
payload: {
key: '填充信息弹窗',
},
});
} else {
modalConfirm =
modalConfirm ||
Modal.confirm({
centered: true,
visible: false,
okText: '确定',
cancelText: '取消',
});
modalConfirm.update({
centered: true,
visible: true,
title: '提示',
content: '您需要去完善您的个人资料,才能使用此功能',
okText: '立即完善',
cancelText: '稍后完善',
onOk: () => {
history.push('/account/profile/edit');
},
});
}
}
} catch (e) {}
handleHttpStatus(d, url);
return d;
})
.catch((e: any, a: any, b: any) => {
try {
const status = e.code;
if (status) {
if (status === 401) {
getDvaApp()._store.dispatch({
type: 'user/showPopLogin',
payload: {
showPopLogin: true,
showClosable: true,
},
});
return;
}
handleHttpStatus(e, url);
} else {
if (url.includes('/file/filePatchMerge')) {
getDvaApp()._store.dispatch({
type: 'shixunHomeworks/setActionTabs',
payload: {
key: '分片专用504',
params: newOptions.body,
},
});
} else {
notification.warning({
style: { wordBreak: 'break-all' },
duration: null,
message: `您的网络可能出现了问题,请稍后再试`,
// description: url,
});
}
}
return e;
} catch (e) {}
});
}
let historyFlag = false;
let errorFlag = false;
const handleHttpStatus = (e: { status: number; message: string }, url?: string) => {
if ((e.status == -1 || e.status == -2 || e.status > 400) && e.status != 403 && !errorFlag) {
errorFlag = true;
setTimeout(() => (errorFlag = false), 500);
// message.warn({ content: e.message, key: 'message-key' });
return;
}
const mapping: { [key: number]: string } = {
403: '/403',
404: '/404',
500: '/500',
};
if (mapping[e.status] && !historyFlag) {
const { user }: any = getDvaApp()._store.getState();
const { userInfo }: any = user;
if (
window.location.pathname.indexOf('/users') > -1 &&
document.domain === 'kepukehuan.educoder.net'
)
alert(e.status + ':' + userInfo?.id + '---' + url);
historyFlag = true;
setTimeout(() => (historyFlag = false), 500);
if (e.status === 403) {
history.replace(mapping[e.status]);
} else {
history.replace(mapping[e.status]);
}
sessionStorage.setItem('errorStatus', JSON.stringify(e));
return;
}
};
export function get(url: string, params?: Object) {
return request(`/api/${url}`, {
method: 'Get',
params: params || {},
});
}
export function getqq(url: string, params?: Object) {
return request(`/${url}`, {
method: 'Get',
params,
});
}
export function post(url: string, params?: Object) {
return request(`/api/${url}`, {
method: 'Post',
body: { ...params },
});
}
export function put(url: string, params?: Object) {
return request(`/api/${url}`, {
method: 'Put',
body: { ...params },
});
}
export function del(url: string) {
return request(`/api/${url}`, { method: 'delete' });
}

@ -0,0 +1,138 @@
/**
* GET
* @param {string} url - URL
* @param {object} params -
* @returns {Promise} - Promise response error
*/
function getRequest(url: string, params: object) {
// 将参数对象转换为查询字符串
const queryString = Object.keys(params)
.map(key => encodeURIComponent(key) + '=' + encodeURIComponent(params[key]))
.join('&');
// 拼接查询字符串到 URL
const urlWithParams = `${url}?${queryString}`;
return fetch(urlWithParams, {
method: 'GET',
headers: {
'Content-Type': 'application/json',
},
})
.then(response => {
if (!response.ok) { throw new Error('请求失败'); }
return response.json();
})
.catch(error => console.error(error));
}
/**
* POST
* @param {string} url - URL
* @param {object} data -
* @returns {Promise} - Promise response error
*/
function postRequest(url: string, data: object) {
return fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(data),
})
.then(response => {
if (!response.ok) { throw new Error('请求失败'); }
return response.json();
})
.catch(error => console.error(error));
}
/**
* Delete
* @param {string} url - URL
* @param {object} params -
* @returns {Promise} - Promise
*/
function deleteRequest(url: string, params: object) {
const searchParams = new URLSearchParams(params);
return fetch(`${url}?${searchParams.toString()}`, {
method: 'DELETE',
})
.then(response => {
if (!response.ok) { throw new Error('请求失败'); }
return response.json();
})
.catch(error => console.error(error));
}
/**
* PUT
* @param {string} url - URL
* @param {object} data -
* @returns {Promise} - Promise
*/
function putRequest(url: string, data: object) {
return fetch(url, {
method: 'PUT',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(data)
})
.then(response => {
if (!response.ok) { throw new Error('请求失败'); }
return response.json();
})
.catch(error => console.error(error));
}
/**
*
* @param {string} url - URL
* @param {string} fileName -
* @returns {Promise} - Promise blob error
*/
function downloadFile(url: string, fileName?: string) {
return fetch(url, {
method: 'GET',
})
.then(response => {
if (!response.ok) { throw new Error('下载失败'); }
response.blob()
})
.then(blob => {
const url = window.URL.createObjectURL(new Blob([blob]));
const link = document.createElement('a');
link.href = url;
link.setAttribute('download', (fileName || '文件名称')); // 设置下载文件的名称
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
})
.catch(error => console.error(error));
}
/**
*
* @param {string} url - URL
* @param {File} file -
* @returns {Promise} - Promise
*/
function uploadFile(url: string, file: File) {
const formData = new FormData();
formData.append('file', file);
return fetch(url, {
method: 'POST',
body: formData
})
.then(response => {
if (!response.ok) { throw new Error('上传失败'); }
return response.json();
})
.catch(error => console.error(error));
}

@ -357,6 +357,14 @@
dependencies:
"@babel/helper-plugin-utils" "^7.22.5"
"@babel/runtime@7.0.0-beta.46":
version "7.0.0-beta.46"
resolved "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.0.0-beta.46.tgz#466a9c0498f6d12d054a185981eef742d59d4871"
integrity sha512-/3a3USMKk54BEHhDgY8rtxtaQOs4bp4aQwo6SDtdwmrXmgSgEusWuXNX5oIs/nwzmTD9o8wz2EyAjA+uHDMmJA==
dependencies:
core-js "^2.5.3"
regenerator-runtime "^0.11.1"
"@babel/runtime@7.23.2", "@babel/runtime@^7.10.1", "@babel/runtime@^7.10.4", "@babel/runtime@^7.11.1", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.7", "@babel/runtime@^7.18.0", "@babel/runtime@^7.18.3", "@babel/runtime@^7.20.0", "@babel/runtime@^7.20.7", "@babel/runtime@^7.21.0", "@babel/runtime@^7.22.5", "@babel/runtime@^7.23.2", "@babel/runtime@^7.7.6", "@babel/runtime@^7.7.7":
version "7.23.2"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.2.tgz#062b0ac103261d68a966c4c7baf2ae3e62ec3885"
@ -364,6 +372,13 @@
dependencies:
regenerator-runtime "^0.14.0"
"@babel/runtime@^7.1.2":
version "7.23.6"
resolved "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.23.6.tgz#c05e610dc228855dc92ef1b53d07389ed8ab521d"
integrity sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ==
dependencies:
regenerator-runtime "^0.14.0"
"@babel/template@^7.22.15", "@babel/template@^7.3.3":
version "7.22.15"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38"
@ -1150,11 +1165,28 @@
resolved "https://registry.yarnpkg.com/@types/hapi__joi/-/hapi__joi-17.1.9.tgz#fb4001df38aba1cd2406ce4b17d4e6fc3b0bd036"
integrity sha512-oOMFT8vmCTFncsF1engrs04jatz8/Anwx3De9uxnOK4chgSEgWBvFtpSoJo8u3784JNO+ql5tzRR6phHoRnscQ==
"@types/history@*":
version "5.0.0"
resolved "https://registry.npmmirror.com/@types/history/-/history-5.0.0.tgz#29f919f0c8e302763798118f45b19cab4a886f14"
integrity sha512-hy8b7Y1J8OGe6LbAjj3xniQrj3v6lsivCcrmf4TzSgPzLkhIeKgc5IZnT7ReIqmEuodjfO8EYAuoFvIrHi/+jQ==
dependencies:
history "*"
"@types/history@^4.7.11":
version "4.7.11"
resolved "https://registry.npmmirror.com/@types/history/-/history-4.7.11.tgz#56588b17ae8f50c53983a524fc3cc47437969d64"
integrity sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==
"@types/html-minifier-terser@^6.0.0":
version "6.1.0"
resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35"
integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==
"@types/isomorphic-fetch@^0.0.34":
version "0.0.34"
resolved "https://registry.npmmirror.com/@types/isomorphic-fetch/-/isomorphic-fetch-0.0.34.tgz#3c3483e606c041378438e951464f00e4e60706d6"
integrity sha512-BmJKuPCZCR6pbYYgi5nKFJrPC4pLoBgsi/B1nFN64Ba+hLLGUcKPIh7eVlR2xG763Ap08hgQafq/Wx4RFb0omQ==
"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0":
version "2.0.6"
resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7"
@ -1203,6 +1235,33 @@
dependencies:
"@types/react" "*"
"@types/react-router-dom@^4.2.7":
version "4.3.5"
resolved "https://registry.npmmirror.com/@types/react-router-dom/-/react-router-dom-4.3.5.tgz#72f229967690c890d00f96e6b85e9ee5780db31f"
integrity sha512-eFajSUASYbPHg2BDM1G8Btx+YqGgvROPIg6sBhl3O4kbDdYXdFdfrgQFf/pcBuQVObjfT9AL/dd15jilR5DIEA==
dependencies:
"@types/history" "*"
"@types/react" "*"
"@types/react-router" "*"
"@types/react-router-redux@^5.0.13":
version "5.0.25"
resolved "https://registry.npmmirror.com/@types/react-router-redux/-/react-router-redux-5.0.25.tgz#6c6901819a0513a2672d8727aa502250bbde1cd4"
integrity sha512-D7gtxg/Assg2T3FWq7iKPGldYbx0QXi3tXww220nT4oLmocsD7IBi66nR6m44Zo1T1rPl4nHO0AveYn/hVeu+w==
dependencies:
"@types/history" "^4.7.11"
"@types/react" "*"
"@types/react-router" "^5.1.0"
redux ">= 3.7.2"
"@types/react-router@*", "@types/react-router@^5.1.0":
version "5.1.20"
resolved "https://registry.npmmirror.com/@types/react-router/-/react-router-5.1.20.tgz#88eccaa122a82405ef3efbcaaa5dcdd9f021387c"
integrity sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==
dependencies:
"@types/history" "^4.7.11"
"@types/react" "*"
"@types/react@*", "@types/react@^18.0.33":
version "18.2.37"
resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.37.tgz#0f03af69e463c0f19a356c2660dbca5d19c44cae"
@ -2344,6 +2403,11 @@ core-js@3.28.0:
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.28.0.tgz#ed8b9e99c273879fdfff0edfc77ee709a5800e4a"
integrity sha512-GiZn9D4Z/rSYvTeg1ljAIsEqFm0LaN9gVtwDCrKL80zHtS31p9BAjmTxVqTQDMpwlMolJZOFntUG2uwyj7DAqw==
core-js@^2.5.3:
version "2.6.12"
resolved "https://registry.npmmirror.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec"
integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==
core-util-is@~1.0.0:
version "1.0.3"
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"
@ -2656,6 +2720,11 @@ dom-serializer@^1.0.1:
domhandler "^4.2.0"
entities "^2.0.0"
dom-walk@^0.1.0:
version "0.1.2"
resolved "https://registry.npmmirror.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84"
integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==
domain-browser@^1.1.1:
version "1.2.0"
resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
@ -2700,6 +2769,39 @@ duplexify@^4.1.2:
readable-stream "^3.1.1"
stream-shift "^1.0.0"
dva-core@^1.4.0:
version "1.4.0"
resolved "https://registry.npmmirror.com/dva-core/-/dva-core-1.4.0.tgz#30aed800b97f07f768e42049094ee3150f48c5d3"
integrity sha512-g1CnnF80+oGTUv9qZCc5vndkPHwoODiAGzdcGFMbT78+SmrbYgbvO5wyRBGvebmLYyaTJt4tLqvHIP+UYJoxkQ==
dependencies:
"@babel/runtime" "7.0.0-beta.46"
flatten "^1.0.2"
global "^4.3.2"
invariant "^2.2.1"
is-plain-object "^2.0.3"
redux "^3.7.1"
redux-saga "^0.16.0"
warning "^3.0.0"
dva@^2.4.1:
version "2.4.1"
resolved "https://registry.npmmirror.com/dva/-/dva-2.4.1.tgz#a3eeb07bb8bc6e2ff9ffe31799d03cb69e45f5fd"
integrity sha512-ggj/P4lYa+7GBZuNua2Sn8rDjhbb2Mjt9THUKlunSYSBwIVU5xFIBkCB87JBPc274ojL9h/hKOmVFVFlWzlRpg==
dependencies:
"@babel/runtime" "7.0.0-beta.46"
"@types/isomorphic-fetch" "^0.0.34"
"@types/react-router-dom" "^4.2.7"
"@types/react-router-redux" "^5.0.13"
dva-core "^1.4.0"
global "^4.3.2"
history "^4.6.3"
invariant "^2.2.2"
isomorphic-fetch "^2.2.1"
react-redux "5.0.7"
react-router-dom "^4.1.2"
react-router-redux "5.0.0-alpha.9"
redux "^3.7.2"
electron-to-chromium@^1.4.535:
version "1.4.588"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.588.tgz#d553f3c008e73488fb181fdf2601fdb0b1ffbb78"
@ -2728,6 +2830,13 @@ emojis-list@^3.0.0:
resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78"
integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==
encoding@^0.1.11:
version "0.1.13"
resolved "https://registry.npmmirror.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9"
integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==
dependencies:
iconv-lite "^0.6.2"
end-of-stream@^1.4.1:
version "1.4.4"
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
@ -3167,6 +3276,11 @@ find-up@^5.0.0:
locate-path "^6.0.0"
path-exists "^4.0.0"
flatten@^1.0.2:
version "1.0.3"
resolved "https://registry.npmmirror.com/flatten/-/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b"
integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==
for-each@^0.3.3:
version "0.3.3"
resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e"
@ -3317,6 +3431,14 @@ glob@^7.1.4:
once "^1.3.0"
path-is-absolute "^1.0.0"
global@^4.3.2:
version "4.4.0"
resolved "https://registry.npmmirror.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406"
integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==
dependencies:
min-document "^2.19.0"
process "^0.11.10"
globals@^11.1.0:
version "11.12.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
@ -3447,13 +3569,25 @@ he@^1.2.0:
resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
history@5.3.0, history@^5.2.0:
history@*, history@5.3.0, history@^5.2.0:
version "5.3.0"
resolved "https://registry.yarnpkg.com/history/-/history-5.3.0.tgz#1548abaa245ba47992f063a0783db91ef201c73b"
integrity sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==
dependencies:
"@babel/runtime" "^7.7.6"
history@^4.6.3, history@^4.7.2:
version "4.10.1"
resolved "https://registry.npmmirror.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3"
integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==
dependencies:
"@babel/runtime" "^7.1.2"
loose-envify "^1.2.0"
resolve-pathname "^3.0.0"
tiny-invariant "^1.0.2"
tiny-warning "^1.0.0"
value-equal "^1.0.1"
hmac-drbg@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
@ -3463,6 +3597,11 @@ hmac-drbg@^1.0.1:
minimalistic-assert "^1.0.0"
minimalistic-crypto-utils "^1.0.1"
hoist-non-react-statics@^2.5.0:
version "2.5.5"
resolved "https://registry.npmmirror.com/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz#c5903cf409c0dfd908f388e619d86b9c1174cb47"
integrity sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==
hoist-non-react-statics@^3.3.1:
version "3.3.2"
resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45"
@ -3544,7 +3683,7 @@ human-signals@^4.3.0:
resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2"
integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==
iconv-lite@^0.6.3:
iconv-lite@^0.6.2, iconv-lite@^0.6.3:
version "0.6.3"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501"
integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
@ -3618,7 +3757,7 @@ internal-slot@^1.0.4, internal-slot@^1.0.5:
hasown "^2.0.0"
side-channel "^1.0.4"
invariant@^2.2.4:
invariant@^2.0.0, invariant@^2.2.1, invariant@^2.2.2, invariant@^2.2.4:
version "2.2.4"
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
@ -3805,6 +3944,13 @@ is-plain-obj@^4.1.0:
resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0"
integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==
is-plain-object@^2.0.3:
version "2.0.4"
resolved "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
dependencies:
isobject "^3.0.1"
is-regex@^1.1.4:
version "1.1.4"
resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958"
@ -3825,6 +3971,11 @@ is-shared-array-buffer@^1.0.2:
dependencies:
call-bind "^1.0.2"
is-stream@^1.0.1:
version "1.1.0"
resolved "https://registry.npmmirror.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==
is-stream@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
@ -3908,6 +4059,19 @@ isexe@^2.0.0:
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
isobject@^3.0.1:
version "3.0.1"
resolved "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==
isomorphic-fetch@^2.2.1:
version "2.2.1"
resolved "https://registry.npmmirror.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9"
integrity sha512-9c4TNAKYXM5PRyVcwUZrF3W09nQ+sO7+jydgs4ZGW9dhsLG2VOlISJABombdQqQRXCwuYG3sYV/puGf5rp0qmA==
dependencies:
node-fetch "^1.0.1"
whatwg-fetch ">=0.10.0"
isomorphic-unfetch@4.0.2:
version "4.0.2"
resolved "https://registry.yarnpkg.com/isomorphic-unfetch/-/isomorphic-unfetch-4.0.2.tgz#5fc04eeb1053b7b702278e2cf7a3f246cb3a9214"
@ -4176,12 +4340,17 @@ locate-path@^6.0.0:
dependencies:
p-locate "^5.0.0"
lodash@^4.17.20, lodash@^4.17.21:
lodash-es@^4.17.5, lodash-es@^4.2.1:
version "4.17.21"
resolved "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee"
integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==
lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.5, lodash@^4.2.1:
version "4.17.21"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0:
loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
@ -4286,6 +4455,13 @@ mimic-fn@^4.0.0:
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc"
integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==
min-document@^2.19.0:
version "2.19.0"
resolved "https://registry.npmmirror.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685"
integrity sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==
dependencies:
dom-walk "^0.1.0"
minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
@ -4355,6 +4531,14 @@ node-domexception@^1.0.0:
resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5"
integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==
node-fetch@^1.0.1:
version "1.7.3"
resolved "https://registry.npmmirror.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef"
integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==
dependencies:
encoding "^0.1.11"
is-stream "^1.0.1"
node-fetch@^3.2.0:
version "3.3.2"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.2.tgz#d1e889bacdf733b4ff3b2b243eb7a12866a0b78b"
@ -4683,6 +4867,13 @@ path-to-regexp@1.7.0:
dependencies:
isarray "0.0.1"
path-to-regexp@^1.7.0:
version "1.8.0"
resolved "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a"
integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==
dependencies:
isarray "0.0.1"
path-type@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
@ -5089,7 +5280,7 @@ process@^0.11.10:
resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==
prop-types@^15.7.2, prop-types@^15.8.1:
prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.7.2, prop-types@^15.8.1:
version "15.8.1"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5"
integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==
@ -5570,6 +5761,18 @@ react-merge-refs@^1.1.0:
resolved "https://registry.yarnpkg.com/react-merge-refs/-/react-merge-refs-1.1.0.tgz#73d88b892c6c68cbb7a66e0800faa374f4c38b06"
integrity sha512-alTKsjEL0dKH/ru1Iyn7vliS2QRcBp9zZPGoWxUOvRGWPUYgjo+V01is7p04It6KhgrzhJGnIj9GgX8W4bZoCQ==
react-redux@5.0.7:
version "5.0.7"
resolved "https://registry.npmmirror.com/react-redux/-/react-redux-5.0.7.tgz#0dc1076d9afb4670f993ffaef44b8f8c1155a4c8"
integrity sha512-5VI8EV5hdgNgyjfmWzBbdrqUkrVRKlyTKk1sGH3jzM2M2Mhj/seQgPXaz6gVAj2lz/nz688AdTqMO18Lr24Zhg==
dependencies:
hoist-non-react-statics "^2.5.0"
invariant "^2.0.0"
lodash "^4.17.5"
lodash-es "^4.17.5"
loose-envify "^1.1.0"
prop-types "^15.6.0"
react-refresh@0.14.0, react-refresh@^0.14.0:
version "0.14.0"
resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.0.tgz#4e02825378a5f227079554d4284889354e5f553e"
@ -5583,6 +5786,27 @@ react-router-dom@6.3.0:
history "^5.2.0"
react-router "6.3.0"
react-router-dom@^4.1.2:
version "4.3.1"
resolved "https://registry.npmmirror.com/react-router-dom/-/react-router-dom-4.3.1.tgz#4c2619fc24c4fa87c9fd18f4fb4a43fe63fbd5c6"
integrity sha512-c/MlywfxDdCp7EnB7YfPMOfMD3tOtIjrQlj/CKfNMBxdmpJP8xcz5P/UAFn3JbnQCNUxsHyVVqllF9LhgVyFCA==
dependencies:
history "^4.7.2"
invariant "^2.2.4"
loose-envify "^1.3.1"
prop-types "^15.6.1"
react-router "^4.3.1"
warning "^4.0.1"
react-router-redux@5.0.0-alpha.9:
version "5.0.0-alpha.9"
resolved "https://registry.npmmirror.com/react-router-redux/-/react-router-redux-5.0.0-alpha.9.tgz#825431516e0e6f1fd93b8807f6bd595e23ec3d10"
integrity sha512-euSgNIANnRXr4GydIuwA7RZCefrLQzIw5WdXspS8NPYbV+FxrKSS9MKG7U9vb6vsKHONnA4VxrVNWfnMUnUQAw==
dependencies:
history "^4.7.2"
prop-types "^15.6.0"
react-router "^4.2.0"
react-router@6.3.0:
version "6.3.0"
resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.3.0.tgz#3970cc64b4cb4eae0c1ea5203a80334fdd175557"
@ -5590,6 +5814,19 @@ react-router@6.3.0:
dependencies:
history "^5.2.0"
react-router@^4.2.0, react-router@^4.3.1:
version "4.3.1"
resolved "https://registry.npmmirror.com/react-router/-/react-router-4.3.1.tgz#aada4aef14c809cb2e686b05cee4742234506c4e"
integrity sha512-yrvL8AogDh2X42Dt9iknk4wF4V8bWREPirFfS9gLU1huk6qK41sg7Z/1S81jjTrGHxa3B8R3J6xIkDAA6CVarg==
dependencies:
history "^4.7.2"
hoist-non-react-statics "^2.5.0"
invariant "^2.2.4"
loose-envify "^1.3.1"
path-to-regexp "^1.7.0"
prop-types "^15.6.1"
warning "^4.0.1"
react@18.1.0:
version "18.1.0"
resolved "https://registry.yarnpkg.com/react/-/react-18.1.0.tgz#6f8620382decb17fdc5cc223a115e2adbf104890"
@ -5631,6 +5868,26 @@ real-require@^0.1.0:
resolved "https://registry.yarnpkg.com/real-require/-/real-require-0.1.0.tgz#736ac214caa20632847b7ca8c1056a0767df9381"
integrity sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==
redux-saga@^0.16.0:
version "0.16.2"
resolved "https://registry.npmmirror.com/redux-saga/-/redux-saga-0.16.2.tgz#993662e86bc945d8509ac2b8daba3a8c615cc971"
integrity sha512-iIjKnRThI5sKPEASpUvySemjzwqwI13e3qP7oLub+FycCRDysLSAOwt958niZW6LhxfmS6Qm1BzbU70w/Koc4w==
"redux@>= 3.7.2":
version "5.0.0"
resolved "https://registry.npmmirror.com/redux/-/redux-5.0.0.tgz#29572e29a439e094ff8fec46883fc45053f6736d"
integrity sha512-blLIYmYetpZMET6Q6uCY7Jtl/Im5OBldy+vNPauA8vvsdqyt66oep4EUpAMWNHauTC6xa9JuRPhRB72rY82QGA==
redux@^3.7.1, redux@^3.7.2:
version "3.7.2"
resolved "https://registry.npmmirror.com/redux/-/redux-3.7.2.tgz#06b73123215901d25d065be342eb026bc1c8537b"
integrity sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==
dependencies:
lodash "^4.2.1"
lodash-es "^4.2.1"
loose-envify "^1.1.0"
symbol-observable "^1.0.3"
reflect.getprototypeof@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz#aaccbf41aca3821b87bb71d9dcbc7ad0ba50a3f3"
@ -5660,6 +5917,11 @@ regenerator-runtime@0.13.11:
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9"
integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==
regenerator-runtime@^0.11.1:
version "0.11.1"
resolved "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==
regenerator-runtime@^0.14.0:
version "0.14.0"
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45"
@ -5710,6 +5972,11 @@ resolve-from@^5.0.0:
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
resolve-pathname@^3.0.0:
version "3.0.0"
resolved "https://registry.npmmirror.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd"
integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==
resolve-pkg-maps@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f"
@ -6209,6 +6476,11 @@ svgo@^2.8.0:
picocolors "^1.0.0"
stable "^0.1.8"
symbol-observable@^1.0.3:
version "1.2.0"
resolved "https://registry.npmmirror.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804"
integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==
synckit@0.8.5:
version "0.8.5"
resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.5.tgz#b7f4358f9bb559437f9f167eb6bc46b3c9818fa3"
@ -6265,6 +6537,16 @@ timers-browserify@^2.0.4:
dependencies:
setimmediate "^1.0.4"
tiny-invariant@^1.0.2:
version "1.3.1"
resolved "https://registry.npmmirror.com/tiny-invariant/-/tiny-invariant-1.3.1.tgz#8560808c916ef02ecfd55e66090df23a4b7aa642"
integrity sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==
tiny-warning@^1.0.0:
version "1.0.3"
resolved "https://registry.npmmirror.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754"
integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==
titleize@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/titleize/-/titleize-3.0.0.tgz#71c12eb7fdd2558aa8a44b0be83b8a76694acd53"
@ -6474,6 +6756,11 @@ utila@~0.4:
resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c"
integrity sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==
value-equal@^1.0.1:
version "1.0.1"
resolved "https://registry.npmmirror.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c"
integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==
vary@^1:
version "1.1.2"
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
@ -6502,6 +6789,20 @@ walker@^1.0.8:
dependencies:
makeerror "1.0.12"
warning@^3.0.0:
version "3.0.0"
resolved "https://registry.npmmirror.com/warning/-/warning-3.0.0.tgz#32e5377cb572de4ab04753bdf8821c01ed605b7c"
integrity sha512-jMBt6pUrKn5I+OGgtQ4YZLdhIeJmObddh6CsibPxyQ5yPZm1XExSyzC1LCNX7BzhxWgiHmizBWJTHJIjMjTQYQ==
dependencies:
loose-envify "^1.0.0"
warning@^4.0.1:
version "4.0.3"
resolved "https://registry.npmmirror.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3"
integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==
dependencies:
loose-envify "^1.0.0"
wbuf@^1.1.0, wbuf@^1.7.3:
version "1.7.3"
resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df"
@ -6514,6 +6815,11 @@ web-streams-polyfill@^3.0.3:
resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6"
integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==
whatwg-fetch@>=0.10.0:
version "3.6.19"
resolved "https://registry.npmmirror.com/whatwg-fetch/-/whatwg-fetch-3.6.19.tgz#caefd92ae630b91c07345537e67f8354db470973"
integrity sha512-d67JP4dHSbm2TrpFj8AbO8DnL1JXL5J9u0Kq2xW6d0TFDbCA3Muhdt8orXC22utleTVj7Prqt82baN6RBvnEgw==
which-boxed-primitive@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6"

Loading…
Cancel
Save