You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@apisix.apache.org by ju...@apache.org on 2020/12/19 02:42:41 UTC
[apisix-dashboard] branch master updated: feat: refactor online
debug for frontend (#978)
This is an automated email from the ASF dual-hosted git repository.
juzhiyuan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-dashboard.git
The following commit(s) were added to refs/heads/master by this push:
new c6f730b feat: refactor online debug for frontend (#978)
c6f730b is described below
commit c6f730b2d8a232916ccb006cf8e20923f59023cf
Author: liuxiran <be...@126.com>
AuthorDate: Fri Dec 18 20:42:34 2020 -0600
feat: refactor online debug for frontend (#978)
* feat: refactor online debug fe
* fix: lint errors
* fix: update yarn.lock
* fix: url required
* fix: update refer to the review
* fix: ci error
* fix: update refer to view
* fix: update yarn.lock
* fix: add attr protocol to debug request
* fix: update params name
* fix: update yarn.lock
* fix: update code review
* fix: lint errors
* fix: typo
* fix: codemirror height
* fix: update yarn.lock
---
web/package.json | 5 +-
web/src/pages/Consumer/List.tsx | 1 -
web/src/pages/Route/List.tsx | 17 +-
.../components/DebugViews/AuthenticationView.tsx | 129 ++++++
.../Route/components/DebugViews/DebugDrawView.tsx | 247 ++++++++++
.../components/DebugViews/DebugParamsView.tsx | 85 ++++
.../pages/Route/components/DebugViews/index.less | 44 ++
web/src/pages/Route/components/DebugViews/index.ts | 19 +
web/src/pages/Route/constants.ts | 16 +
web/src/pages/Route/locales/en-US.ts | 18 +
web/src/pages/Route/locales/zh-CN.ts | 18 +
web/src/pages/Route/service.ts | 7 +
web/src/pages/Route/typing.d.ts | 70 ++-
web/src/pages/Upstream/List.tsx | 1 -
web/yarn.lock | 497 ++-------------------
15 files changed, 668 insertions(+), 506 deletions(-)
diff --git a/web/package.json b/web/package.json
index 8a6382a..c7dbef2 100644
--- a/web/package.json
+++ b/web/package.json
@@ -56,6 +56,7 @@
"@uiw/react-codemirror": "^3.0.1",
"ajv": "^7.0.0-rc.2",
"antd": "^4.4.0",
+ "base-64": "^1.0.0",
"classnames": "^2.2.6",
"dayjs": "1.8.28",
"js-beautify": "^1.13.0",
@@ -65,12 +66,12 @@
"omit.js": "^2.0.2",
"path-to-regexp": "2.4.0",
"qs": "^6.9.0",
+ "query-string": "^6.13.7",
"react": "^16.8.6",
"react-device-detect": "^1.12.1",
"react-dom": "^16.8.6",
"react-helmet-async": "^1.0.4",
"start-server-and-test": "^1.11.5",
- "swagger-ui-react": "^3.33.0",
"umi": "^3.1.2",
"umi-request": "^1.0.8",
"use-merge-value": "^1.0.1",
@@ -89,8 +90,8 @@
"@types/react": "^16.9.17",
"@types/react-dom": "^16.8.4",
"@types/react-helmet": "^5.0.13",
- "@types/swagger-ui-react": "^3.23.3",
"@types/uuid": "7.0.4",
+ "@types/base-64": "^0.1.3",
"@umijs/fabric": "^2.2.0",
"@umijs/plugin-blocks": "^2.0.5",
"@umijs/plugin-esbuild": "^1.0.0-beta.2",
diff --git a/web/src/pages/Consumer/List.tsx b/web/src/pages/Consumer/List.tsx
index dcd61dd..78d1587 100644
--- a/web/src/pages/Consumer/List.tsx
+++ b/web/src/pages/Consumer/List.tsx
@@ -22,7 +22,6 @@ import { history, useIntl } from 'umi';
import { PlusOutlined } from '@ant-design/icons';
import { timestampToLocaleString } from '@/helpers';
-
import { fetchList, remove } from './service';
const Page: React.FC = () => {
diff --git a/web/src/pages/Route/List.tsx b/web/src/pages/Route/List.tsx
index b606f22..0602eac 100644
--- a/web/src/pages/Route/List.tsx
+++ b/web/src/pages/Route/List.tsx
@@ -14,20 +14,21 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-import React, { useRef } from 'react';
+import React, { useRef, useState } from 'react';
import { PageHeaderWrapper } from '@ant-design/pro-layout';
import ProTable, { ProColumns, ActionType } from '@ant-design/pro-table';
import { Button, Popconfirm, notification, Tag, Space } from 'antd';
import { history, useIntl } from 'umi';
-import { PlusOutlined } from '@ant-design/icons';
-
+import { PlusOutlined, BugOutlined } from '@ant-design/icons';
import { timestampToLocaleString } from '@/helpers';
import { fetchList, remove } from './service';
+import { DebugDrawView } from './components/DebugViews';
const Page: React.FC = () => {
const ref = useRef<ActionType>();
const { formatMessage } = useIntl();
+ const [debugDrawVisible, setDebugDrawVisible] = useState(false);
const columns: ProColumns<RouteModule.ResponseBody>[] = [
{
@@ -126,8 +127,18 @@ const Page: React.FC = () => {
<PlusOutlined />
{formatMessage({ id: 'component.global.create' })}
</Button>,
+ <Button type="primary" onClick={() => setDebugDrawVisible(true)}>
+ <BugOutlined />
+ {formatMessage({ id: 'page.route.onlineDebug' })}
+ </Button>,
]}
/>
+ <DebugDrawView
+ visible={debugDrawVisible}
+ onClose={() => {
+ setDebugDrawVisible(false);
+ }}
+ />
</PageHeaderWrapper>
);
};
diff --git a/web/src/pages/Route/components/DebugViews/AuthenticationView.tsx b/web/src/pages/Route/components/DebugViews/AuthenticationView.tsx
new file mode 100644
index 0000000..ba43779
--- /dev/null
+++ b/web/src/pages/Route/components/DebugViews/AuthenticationView.tsx
@@ -0,0 +1,129 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import React, { useState } from 'react';
+import { Form, Input, Radio, Card } from 'antd';
+import { useIntl } from 'umi';
+import { AUTH_LIST } from '../../constants';
+import styles from './index.less';
+
+const AuthenticationView: React.FC<RouteModule.DebugViewProps> = (props) => {
+ const { formatMessage } = useIntl();
+ const [authType, setAuthType] = useState('none');
+
+ const getAuthFormItems = () => {
+ switch (props.form.getFieldValue('authType')) {
+ case 'basic-auth':
+ return (
+ <>
+ <Form.Item
+ label={formatMessage({ id: 'page.route.form.itemLabel.username' })}
+ name="username"
+ rules={[
+ {
+ required: true,
+ message: `${formatMessage({
+ id: 'component.global.pleaseEnter',
+ })}${formatMessage({ id: 'page.route.form.itemLabel.username' })}`,
+ },
+ ]}
+ >
+ <Input />
+ </Form.Item>
+ <Form.Item
+ label={formatMessage({ id: 'page.route.form.itemLabel.password' })}
+ name="password"
+ rules={[
+ {
+ required: true,
+ message: `${formatMessage({
+ id: 'component.global.pleaseEnter',
+ })}${formatMessage({ id: 'page.route.form.itemLabel.password' })}`,
+ },
+ ]}
+ >
+ <Input.Password />
+ </Form.Item>
+ </>
+ );
+ case 'jwt-auth':
+ return (
+ <Form.Item
+ label={formatMessage({ id: 'page.route.form.itemLabel.token' })}
+ name="Authorization"
+ rules={[
+ {
+ required: true,
+ message: `${formatMessage({ id: 'component.global.pleaseEnter' })}${formatMessage({
+ id: 'page.route.form.itemLabel.token',
+ })}`,
+ },
+ ]}
+ >
+ <Input />
+ </Form.Item>
+ );
+ case 'key-auth':
+ return (
+ <Form.Item
+ label={formatMessage({ id: 'page.route.form.itemLabel.apikey' })}
+ name="apikey"
+ rules={[
+ {
+ required: true,
+ message: `${formatMessage({ id: 'component.global.pleaseEnter' })}${formatMessage({
+ id: 'page.route.form.itemLabel.apikey',
+ })}`,
+ },
+ ]}
+ >
+ <Input />
+ </Form.Item>
+ );
+ default:
+ return <div>{formatMessage({ id: 'page.route.debugWithoutAuth' })}</div>;
+ }
+ };
+
+ return (
+ <Card>
+ <Form name="authForm" form={props.form}>
+ <div className={styles.authForm}>
+ <Form.Item name="authType">
+ <Radio.Group
+ defaultValue={authType}
+ onChange={(event) => {
+ const currentValue = event.target.value;
+ setAuthType(currentValue);
+ props.form.setFieldsValue({ autyType: currentValue });
+ }}
+ >
+ <Radio value="none">None</Radio>
+ {AUTH_LIST.map((type) => (
+ <Radio key={type} value={type}>
+ {type}
+ </Radio>
+ ))}
+ </Radio.Group>
+ </Form.Item>
+ <div>{getAuthFormItems()}</div>
+ </div>
+ </Form>
+ </Card>
+ );
+};
+
+export default AuthenticationView;
diff --git a/web/src/pages/Route/components/DebugViews/DebugDrawView.tsx b/web/src/pages/Route/components/DebugViews/DebugDrawView.tsx
new file mode 100644
index 0000000..24f75b7
--- /dev/null
+++ b/web/src/pages/Route/components/DebugViews/DebugDrawView.tsx
@@ -0,0 +1,247 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import React, { useEffect, useState } from 'react';
+import { Input, Select, Card, Tabs, Form, Drawer, Spin, notification } from 'antd';
+import { useIntl } from 'umi';
+import CodeMirror from '@uiw/react-codemirror';
+import { PanelSection } from '@api7-dashboard/ui';
+import queryString from 'query-string';
+import Base64 from 'base-64';
+
+import {
+ HTTP_METHOD_OPTION_LIST,
+ DEFAULT_DEBUG_PARAM_FORM_DATA,
+ DEFAULT_DEBUG_AUTH_FORM_DATA,
+} from '../../constants';
+import { DebugParamsView, AuthenticationView } from '.';
+import { debugRoute } from '../../service';
+import styles from './index.less';
+
+const { Option } = Select;
+const { Search } = Input;
+const { TabPane } = Tabs;
+
+const DebugDrawView: React.FC<RouteModule.DebugDrawProps> = (props) => {
+ const { formatMessage } = useIntl();
+ const [httpMethod, setHttpMethod] = useState('GET');
+ const [showBodyTab, setShowBodyTab] = useState(false);
+ const [queryForm] = Form.useForm();
+ const [bodyForm] = Form.useForm();
+ const [authForm] = Form.useForm();
+ const [headerForm] = Form.useForm();
+ const [responseCode, setResponseCode] = useState<string>();
+ const [loading, setLoading] = useState(false);
+ const [codeMirrorHeight, setCodeMirrorHeight] = useState<number | string>(50);
+ const methodWithoutBody = ['GET', 'HEAD'];
+
+ const resetForms = () => {
+ queryForm.setFieldsValue(DEFAULT_DEBUG_PARAM_FORM_DATA);
+ bodyForm.setFieldsValue(DEFAULT_DEBUG_PARAM_FORM_DATA);
+ headerForm.setFieldsValue(DEFAULT_DEBUG_PARAM_FORM_DATA);
+ authForm.setFieldsValue(DEFAULT_DEBUG_AUTH_FORM_DATA);
+ setResponseCode(`${formatMessage({ id: 'page.route.debug.showResultAfterSendRequest' })}`);
+ };
+
+ useEffect(() => {
+ resetForms();
+ }, []);
+
+ const transformBodyParamsFormData = (formData: RouteModule.debugRequestParamsFormData[]) => {
+ let transformData = {};
+ (formData || [])
+ .filter((data) => data.check)
+ .forEach((data) => {
+ transformData = {
+ ...transformData,
+ [data.key]: data.value,
+ };
+ });
+
+ return transformData;
+ };
+
+ const transformHeaderAndQueryParamsFormData = (
+ formData: RouteModule.debugRequestParamsFormData[],
+ ) => {
+ let transformData = {};
+ (formData || [])
+ .filter((data) => data.check)
+ .forEach((data) => {
+ transformData = {
+ ...transformData,
+ [data.key]: [...(transformData[data.key] || []), data.value],
+ };
+ });
+
+ return transformData;
+ };
+
+ const transformAuthFormData = (formData: RouteModule.authData, headerData: any) => {
+ const { authType } = formData;
+
+ switch (authType) {
+ case 'basic-auth':
+ return {
+ ...headerData,
+ Authorization: [`Basic ${Base64.encode(`${formData.username}:${formData.password}`)}`],
+ };
+ case 'jwt-auth':
+ return {
+ ...headerData,
+ Authorization: [formData.Authorization],
+ };
+ case 'key-auth':
+ return {
+ ...headerData,
+ apikey: [formData.apikey],
+ };
+ default:
+ break;
+ }
+
+ return headerData;
+ };
+
+ const handleDebug = (url: string) => {
+ if (url === '') {
+ notification.warning({
+ message: formatMessage({ id: 'page.route.input.placeholder.requestUrl' }),
+ });
+ return;
+ }
+ const queryFormData = transformHeaderAndQueryParamsFormData(queryForm.getFieldsValue().params);
+ const bodyFormData = transformBodyParamsFormData(bodyForm.getFieldsValue().params);
+ const pureHeaderFormData = transformHeaderAndQueryParamsFormData(
+ headerForm.getFieldsValue().params,
+ );
+ const headerFormData = transformAuthFormData(authForm.getFieldsValue(), pureHeaderFormData);
+ const urlQueryString = queryString.stringify(queryFormData);
+
+ setLoading(true);
+ // TODO: grpc and websocket
+ debugRoute({
+ url: `${url}${urlQueryString && `?${urlQueryString}`}`,
+ request_protocol: 'http',
+ method: httpMethod,
+ body_params: bodyFormData,
+ header_params: headerFormData,
+ })
+ .then((req) => {
+ setLoading(false);
+ setResponseCode(JSON.stringify(req.data.data, null, 2));
+ setCodeMirrorHeight('auto');
+ })
+ .catch(() => {
+ setLoading(false);
+ });
+ };
+ return (
+ <Drawer
+ title={formatMessage({ id: 'page.route.onlineDebug' })}
+ mask={false}
+ maskClosable={false}
+ visible={props.visible}
+ width={600}
+ onClose={() => {
+ props.onClose();
+ }}
+ className={styles.routeDebugDraw}
+ >
+ <Card bordered={false}>
+ <Input.Group compact>
+ <Select
+ defaultValue={httpMethod}
+ style={{ width: '20%' }}
+ onChange={(value) => {
+ setHttpMethod(value);
+ setShowBodyTab(!(methodWithoutBody.indexOf(value) > -1));
+ }}
+ size="large"
+ >
+ {HTTP_METHOD_OPTION_LIST.map((method) => {
+ return (
+ <Option key={method} value={method}>
+ {method}
+ </Option>
+ );
+ })}
+ </Select>
+ <Search
+ placeholder={formatMessage({ id: 'page.route.input.placeholder.requestUrl' })}
+ allowClear
+ enterButton={formatMessage({ id: 'page.route.button.send' })}
+ size="large"
+ style={{ width: '80%' }}
+ onSearch={handleDebug}
+ onPressEnter={(e) => {
+ handleDebug(e.currentTarget.value);
+ }}
+ onChange={(e) => {
+ if (e.currentTarget.value === '') {
+ resetForms();
+ setCodeMirrorHeight(50);
+ }
+ }}
+ />
+ </Input.Group>
+ <PanelSection
+ title={formatMessage({ id: 'page.route.PanelSection.title.defineRequestParams' })}
+ >
+ <Tabs>
+ <TabPane tab={formatMessage({ id: 'page.route.TabPane.queryParams' })} key="query">
+ <DebugParamsView form={queryForm} />
+ </TabPane>
+ <TabPane tab={formatMessage({ id: 'page.route.TabPane.authentication' })} key="auth">
+ <AuthenticationView form={authForm} />
+ </TabPane>
+ <TabPane tab={formatMessage({ id: 'page.route.TabPane.headerParams' })} key="header">
+ <DebugParamsView form={headerForm} />
+ </TabPane>
+ {showBodyTab && (
+ <TabPane tab={formatMessage({ id: 'page.route.TabPane.bodyParams' })} key="body">
+ <DebugParamsView form={bodyForm} />
+ </TabPane>
+ )}
+ </Tabs>
+ </PanelSection>
+ <PanelSection title={formatMessage({ id: 'page.route.PanelSection.title.responseResult' })}>
+ <Tabs>
+ <TabPane tab={formatMessage({ id: 'page.route.TabPane.response' })} key="reponse">
+ <Spin tip="Loading..." spinning={loading}>
+ <CodeMirror
+ value={responseCode}
+ height={codeMirrorHeight}
+ options={{
+ mode: 'json-ld',
+ readOnly: 'nocursor',
+ lineWrapping: true,
+ lineNumbers: true,
+ showCursorWhenSelecting: true,
+ autofocus: true,
+ scrollbarStyle: null,
+ }}
+ />
+ </Spin>
+ </TabPane>
+ </Tabs>
+ </PanelSection>
+ </Card>
+ </Drawer>
+ );
+};
+
+export default DebugDrawView;
diff --git a/web/src/pages/Route/components/DebugViews/DebugParamsView.tsx b/web/src/pages/Route/components/DebugViews/DebugParamsView.tsx
new file mode 100644
index 0000000..b116a0b
--- /dev/null
+++ b/web/src/pages/Route/components/DebugViews/DebugParamsView.tsx
@@ -0,0 +1,85 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import React from 'react';
+import { Form, Input, Row, Col, Checkbox } from 'antd';
+import { useIntl } from 'umi';
+import { MinusCircleOutlined } from '@ant-design/icons';
+
+import styles from './index.less';
+
+const DebugParamsView: React.FC<RouteModule.DebugViewProps> = (props) => {
+ const { formatMessage } = useIntl();
+
+ return (
+ <Form name="dynamic_form_nest_item" className={styles.routeDebugDraw} form={props.form}>
+ <Form.List name="params">
+ {(fields, { add, remove }) => {
+ return (
+ <>
+ {fields.map((field, index) => (
+ <Row gutter={16} key={field.name}>
+ <Col span={1}>
+ <Form.Item
+ name={[field.name, 'check']}
+ style={{ textAlign: 'right' }}
+ valuePropName="checked"
+ >
+ {fields.length > 1 && index !== fields.length - 1 && <Checkbox />}
+ </Form.Item>
+ </Col>
+ <Col span={8}>
+ <Form.Item name={[field.name, 'key']}>
+ <Input
+ placeholder={formatMessage({ id: 'page.route.input.placeholder.paramKey' })}
+ onChange={() => {
+ // only last line key field input can trigger add new line event
+ if (index === fields.length - 1) {
+ add();
+ const prevData = props.form.getFieldsValue();
+ // auto change the prev line checkbox checked
+ prevData.params[index].check = true;
+ props.form.setFieldsValue(prevData);
+ }
+ }}
+ />
+ </Form.Item>
+ </Col>
+ <Col span={8}>
+ <Form.Item name={[field.name, 'value']}>
+ <Input
+ placeholder={formatMessage({
+ id: 'page.route.input.placeholder.paramValue',
+ })}
+ />
+ </Form.Item>
+ </Col>
+ <Col>
+ {fields.length > 1 && index !== fields.length - 1 && (
+ <MinusCircleOutlined onClick={() => remove(field.name)} />
+ )}
+ </Col>
+ </Row>
+ ))}
+ </>
+ );
+ }}
+ </Form.List>
+ </Form>
+ );
+};
+
+export default DebugParamsView;
diff --git a/web/src/pages/Route/components/DebugViews/index.less b/web/src/pages/Route/components/DebugViews/index.less
new file mode 100644
index 0000000..f9cb5dc
--- /dev/null
+++ b/web/src/pages/Route/components/DebugViews/index.less
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+@import '~antd/es/style/themes/default.less';
+
+.routeDebugDraw {
+ :global {
+ .ant-card-body {
+ padding: 0;
+ }
+ .ant-drawer-body {
+ padding: 16px;
+ }
+ .ant-radio-wrapper {
+ display: block;
+ height: 30px;
+ line-height: 30px;
+ }
+ .ant-form-item {
+ margin-bottom: 8px;
+ }
+ .ant-radio-group {
+ margin-right: 16px;
+ border-right: 1px solid #e0e0e0;
+ }
+ }
+ .authForm {
+ display: flex;
+ margin: 16px;
+ }
+}
diff --git a/web/src/pages/Route/components/DebugViews/index.ts b/web/src/pages/Route/components/DebugViews/index.ts
new file mode 100644
index 0000000..a2bb935
--- /dev/null
+++ b/web/src/pages/Route/components/DebugViews/index.ts
@@ -0,0 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+export { default as DebugParamsView } from './DebugParamsView';
+export { default as AuthenticationView } from './AuthenticationView';
+export { default as DebugDrawView } from './DebugDrawView';
diff --git a/web/src/pages/Route/constants.ts b/web/src/pages/Route/constants.ts
index 6ea3ed3..5490f8f 100644
--- a/web/src/pages/Route/constants.ts
+++ b/web/src/pages/Route/constants.ts
@@ -83,3 +83,19 @@ export const HASH_KEY_LIST = [
];
export const HASH_ON_LIST = ['vars', 'header', 'cookie', 'consumer'];
+
+export const AUTH_LIST = ['basic-auth', 'jwt-auth', 'key-auth'];
+
+export const DEFAULT_DEBUG_PARAM_FORM_DATA = {
+ params: [
+ {
+ check: false,
+ key: '',
+ value: '',
+ },
+ ],
+};
+
+export const DEFAULT_DEBUG_AUTH_FORM_DATA = {
+ authType: 'none',
+};
diff --git a/web/src/pages/Route/locales/en-US.ts b/web/src/pages/Route/locales/en-US.ts
index 92bfe5a..56b9ffc 100644
--- a/web/src/pages/Route/locales/en-US.ts
+++ b/web/src/pages/Route/locales/en-US.ts
@@ -16,6 +16,8 @@
*/
export default {
'page.route.button.returnList': 'Return Route List',
+ 'page.route.button.send': 'Send',
+ 'page.route.onlineDebug': 'Online Debug',
'page.route.parameterPosition': 'Parameter Position',
'page.route.httpRequestHeader': 'HTTP Request Header',
@@ -32,6 +34,9 @@ export default {
'page.route.input.placeholder.parameterNameHttpHeader': 'Request header name, for example: HOST',
'page.route.input.placeholder.parameterNameRequestParameter': 'Parameter name, for example: id',
+ 'page.route.input.placeholder.requestUrl': 'please input the request URL',
+ 'page.route.input.placeholder.paramKey': 'Param Key',
+ 'page.route.input.placeholder.paramValue': 'Param Value',
'page.route.form.itemRulesRequiredMessage.parameterName':
'Only letters and Numbers are supported, and can only begin with letters',
@@ -55,6 +60,10 @@ export default {
'page.route.input.placeholder.redirectCustom': 'For example: /foo/index.html',
'page.route.select.option.redirect301': '301(Permanent Redirect)',
'page.route.select.option.redirect302': '302(Temporary Redirect)',
+ 'page.route.form.itemLabel.username': 'Username',
+ 'page.route.form.itemLabel.password': 'Password',
+ 'page.route.form.itemLabel.token': 'Token',
+ 'page.route.form.itemLabel.apikey': 'Apikey',
'page.route.form.itemExtraMessage.domain':
'Domain Name or IP, support for generic Domain Name, for example: *.test.com',
@@ -103,4 +112,13 @@ export default {
'page.route.domainName': 'Domain Name',
'page.route.path': 'Path',
'page.route.remoteAddrs': 'Remote Addrs',
+ 'page.route.PanelSection.title.defineRequestParams': 'Define Request Parameters',
+ 'page.route.PanelSection.title.responseResult': 'Response Result',
+ 'page.route.debug.showResultAfterSendRequest': 'Show Result After Send Request',
+ 'page.route.TabPane.queryParams': 'Query Params',
+ 'page.route.TabPane.bodyParams': 'Body Params',
+ 'page.route.TabPane.headerParams': 'Header Params',
+ 'page.route.TabPane.authentication': 'Authentication',
+ 'page.route.TabPane.response': 'Response',
+ 'page.route.debugWithoutAuth': 'This request does not use any authorization.',
};
diff --git a/web/src/pages/Route/locales/zh-CN.ts b/web/src/pages/Route/locales/zh-CN.ts
index da087b4..f805e67 100644
--- a/web/src/pages/Route/locales/zh-CN.ts
+++ b/web/src/pages/Route/locales/zh-CN.ts
@@ -36,14 +36,19 @@ export default {
'page.route.status': '状态',
'page.route.groupName': '分组名称',
'page.route.offline': '下线',
+ 'page.route.onlineDebug': '在线调试',
// button
'page.route.button.returnList': '返回路由列表',
+ 'page.route.button.send': '发送请求',
// input
'page.route.input.placeholder.parameterNameHttpHeader': '请求头键名,例如:HOST',
'page.route.input.placeholder.parameterNameRequestParameter': '参数名称,例如:id',
'page.route.input.placeholder.redirectCustom': '例如:/foo/index.html',
+ 'page.route.input.placeholder.requestUrl': '请输入请求地址',
+ 'page.route.input.placeholder.paramKey': '参数名称',
+ 'page.route.input.placeholder.paramValue': '参数值',
// form
'page.route.form.itemRulesRequiredMessage.parameterName': '仅支持字母和数字,且只能以字母开头',
'page.route.form.itemLabel.apiName': 'API 名称',
@@ -66,6 +71,10 @@ export default {
'客户端 IP,例如:192.168.1.101,192.168.1.0/24,::1,fe80::1,fe80::1/64',
'page.route.form.itemRulesPatternMessage.remoteAddrs':
'请输入合法的 IP 地址,例如:192.168.1.101,192.168.1.0/24,::1,fe80::1,fe80::1/64',
+ 'page.route.form.itemLabel.username': '用户名',
+ 'page.route.form.itemLabel.password': '密 码',
+ 'page.route.form.itemLabel.token': 'Token',
+ 'page.route.form.itemLabel.apikey': 'Apikey',
// select
'page.route.select.option.enableHttps': '启用 HTTPS',
@@ -85,6 +94,8 @@ export default {
'page.route.panelSection.title.requestOverride': '请求改写',
'page.route.panelSection.title.requestConfigBasicDefine': '请求基础定义',
'page.route.panelSection.title.advancedMatchRule': '高级路由匹配条件',
+ 'page.route.PanelSection.title.defineRequestParams': '请求参数定义',
+ 'page.route.PanelSection.title.responseResult': '请求响应结果',
'page.route.httpAction': '行为',
'page.route.httpOverrideOrCreate': '重写/创建',
@@ -103,4 +114,11 @@ export default {
'page.route.input.placeholder.newPath': '例如:/foo/bar/index.html',
'page.route.form.itemLabel.newPath': '新地址',
'page.route.popconfirm.title.offline': '确定下线该路由吗?',
+ 'page.route.debug.showResultAfterSendRequest': '发送请求后在此查看响应结果',
+ 'page.route.TabPane.queryParams': '查询参数',
+ 'page.route.TabPane.bodyParams': '请求体参数',
+ 'page.route.TabPane.headerParams': '请求头参数',
+ 'page.route.TabPane.authentication': '认证',
+ 'page.route.TabPane.response': '响应结果',
+ 'page.route.debugWithoutAuth': '当前请求不启用任何认证方式。',
};
diff --git a/web/src/pages/Route/service.ts b/web/src/pages/Route/service.ts
index 82172b1..8a1fad6 100644
--- a/web/src/pages/Route/service.ts
+++ b/web/src/pages/Route/service.ts
@@ -85,3 +85,10 @@ export const checkHostWithSSL = (hosts: string[]) =>
method: 'POST',
data: hosts,
});
+
+export const debugRoute = (data: RouteModule.debugRequest) => {
+ return request('/debug-request-forwarding', {
+ method: 'post',
+ data,
+ });
+};
diff --git a/web/src/pages/Route/typing.d.ts b/web/src/pages/Route/typing.d.ts
index 3db4a2b..4367972 100644
--- a/web/src/pages/Route/typing.d.ts
+++ b/web/src/pages/Route/typing.d.ts
@@ -107,48 +107,6 @@ declare namespace RouteModule {
url?: string;
};
- type RouteParamSchema = {
- type: string | integer | boolean | object | array;
- };
-
- type RouteParam = {
- name: string;
- in: 'query' | 'header' | 'path' | 'cookie';
- description: string;
- required: boolean;
- style?: 'form' | 'simple';
- explode?: boolean;
- schema?: RouteParamSchema;
- };
-
- type PathSchema = {
- tags: string;
- summary: string;
- description: string;
- operationId: string;
- requestBody?: object;
- parameters?: RouteParam[];
- responses: ResponseScheme;
- };
-
- type ResponseSchema = {
- [code: string]: {
- description: string;
- content: ResponseItemContent;
- };
- };
-
- type ResponseItemContent = {
- 'application/xml'?: {};
- 'application/json'?: {};
- };
-
- type TagSchema = {
- name: string;
- description: string;
- externalDocs?: object;
- };
-
// step1
interface MatchingRule {
position: VarPosition;
@@ -271,4 +229,32 @@ declare namespace RouteModule {
create_time: number;
update_time: number;
};
+
+ // TODO: grpc and websocket
+ type debugRequest = {
+ url: string;
+ request_protocol: 'http' | 'grpc' | 'websocket';
+ method: string;
+ body_params?: any;
+ header_params?: any;
+ };
+ type authData = {
+ authType: string;
+ username?: string;
+ password?: string;
+ Authorization?: string;
+ apikey?: string;
+ };
+ type debugRequestParamsFormData = {
+ check: boolean;
+ key: string;
+ value: string;
+ };
+ type DebugViewProps = {
+ form: FormInstance;
+ };
+ type DebugDrawProps = {
+ visible: boolean;
+ onClose(): void;
+ };
}
diff --git a/web/src/pages/Upstream/List.tsx b/web/src/pages/Upstream/List.tsx
index 396acab..1f3d80e 100644
--- a/web/src/pages/Upstream/List.tsx
+++ b/web/src/pages/Upstream/List.tsx
@@ -20,7 +20,6 @@ import ProTable, { ProColumns, ActionType } from '@ant-design/pro-table';
import { Popconfirm, Button, notification } from 'antd';
import { history, useIntl } from 'umi';
import { PlusOutlined } from '@ant-design/icons';
-
import { timestampToLocaleString } from '@/helpers';
import { fetchList, remove } from './service';
diff --git a/web/yarn.lock b/web/yarn.lock
index eacd092..f5727a2 100644
--- a/web/yarn.lock
+++ b/web/yarn.lock
@@ -1369,7 +1369,7 @@
pirates "^4.0.0"
source-map-support "^0.5.16"
-"@babel/runtime-corejs2@^7.10.4", "@babel/runtime-corejs2@^7.8.7":
+"@babel/runtime-corejs2@^7.8.7":
version "7.11.2"
resolved "https://registry.npm.taobao.org/@babel/runtime-corejs2/download/@babel/runtime-corejs2-7.11.2.tgz?cache=0&sync_timestamp=1596637246233&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime-corejs2%2Fdownload%2F%40babel%2Fruntime-corejs2-7.11.2.tgz#700a03945ebad0d31ba6690fc8a6bcc9040faa47"
integrity sha1-cAoDlF660NMbpmkPyKa8yQQPqkc=
@@ -1392,7 +1392,7 @@
dependencies:
regenerator-runtime "^0.13.4"
-"@babel/runtime@7.11.2", "@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.1", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.4", "@babel/runtime@^7.11.1", "@babel/runtime@^7.11.2", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2":
+"@babel/runtime@7.11.2", "@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.1", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.4", "@babel/runtime@^7.11.1", "@babel/runtime@^7.11.2", "@babel/runtime@^7.4.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2":
version "7.11.2"
resolved "https://registry.npm.taobao.org/@babel/runtime/download/@babel/runtime-7.11.2.tgz?cache=0&sync_timestamp=1596637761107&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736"
integrity sha1-9UnBPHVMxAuHZEufqfCaapX+BzY=
@@ -1483,11 +1483,6 @@
resolved "https://registry.npm.taobao.org/@bcoe/v8-coverage/download/@bcoe/v8-coverage-0.2.3.tgz?cache=0&sync_timestamp=1588857799815&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40bcoe%2Fv8-coverage%2Fdownload%2F%40bcoe%2Fv8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
integrity sha1-daLotRy3WKdVPWgEpZMteqznXDk=
-"@braintree/sanitize-url@^4.0.0":
- version "4.1.1"
- resolved "https://registry.npm.taobao.org/@braintree/sanitize-url/download/@braintree/sanitize-url-4.1.1.tgz#671b3cfdbcc40d1449036ce586e882ab6150828e"
- integrity sha1-Zxs8/bzEDRRJA2zlhuiCq2FQgo4=
-
"@cnakazawa/watch@^1.0.3":
version "1.0.4"
resolved "https://registry.npm.taobao.org/@cnakazawa/watch/download/@cnakazawa/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a"
@@ -1923,18 +1918,6 @@
"@types/yargs" "^15.0.0"
chalk "^3.0.0"
-"@kyleshockey/object-assign-deep@^0.4.2":
- version "0.4.2"
- resolved "https://registry.npm.taobao.org/@kyleshockey/object-assign-deep/download/@kyleshockey/object-assign-deep-0.4.2.tgz#84900f0eefc372798f4751b5262830b8208922ec"
- integrity sha1-hJAPDu/DcnmPR1G1JigwuCCJIuw=
-
-"@kyleshockey/xml@^1.0.2":
- version "1.0.2"
- resolved "https://registry.npm.taobao.org/@kyleshockey/xml/download/@kyleshockey/xml-1.0.2.tgz#81fad3d7c33da2ba2639db095db3db24c2921f70"
- integrity sha1-gfrT18M9oromOdsJXbPbJMKSH3A=
- dependencies:
- stream "^0.0.2"
-
"@mrblenny/react-flow-chart@^0.0.14":
version "0.0.14"
resolved "https://registry.npm.taobao.org/@mrblenny/react-flow-chart/download/@mrblenny/react-flow-chart-0.0.14.tgz#be11d06345c7222b41f488b38011b109e48a04b3"
@@ -2243,6 +2226,11 @@
dependencies:
"@babel/types" "^7.3.0"
+"@types/base-64@^0.1.3":
+ version "0.1.3"
+ resolved "https://registry.npm.taobao.org/@types/base-64/download/@types/base-64-0.1.3.tgz#875320c0d019f576a179324124cdbd5031a411f5"
+ integrity sha1-h1MgwNAZ9XaheTJBJM29UDGkEfU=
+
"@types/body-parser@*":
version "1.19.0"
resolved "https://registry.npm.taobao.org/@types/body-parser/download/@types/body-parser-1.19.0.tgz#0685b3c47eb3006ffed117cdd55164b61f80538f"
@@ -2661,13 +2649,6 @@
"@types/prop-types" "*"
csstype "^3.0.2"
-"@types/react@16.4.6":
- version "16.4.6"
- resolved "https://registry.npm.taobao.org/@types/react/download/@types/react-16.4.6.tgz?cache=0&sync_timestamp=1598892372094&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact%2Fdownload%2F%40types%2Freact-16.4.6.tgz#5024957c6bcef4f02823accf5974faba2e54fada"
- integrity sha1-UCSVfGvO9PAoI6zPWXT6ui5U+to=
- dependencies:
- csstype "^2.2.0"
-
"@types/resolve@1.17.1":
version "1.17.1"
resolved "https://registry.npm.taobao.org/@types/resolve/download/@types/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6"
@@ -2747,13 +2728,6 @@
resolved "https://registry.npm.taobao.org/@types/stack-utils/download/@types/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e"
integrity sha1-CoUdO9lkmPolwzq3J47TvWXwbD4=
-"@types/swagger-ui-react@^3.23.3":
- version "3.23.3"
- resolved "https://registry.npm.taobao.org/@types/swagger-ui-react/download/@types/swagger-ui-react-3.23.3.tgz#56bcf3872d8655500e6d51d29ba3916397806fa3"
- integrity sha1-Vrzzhy2GVVAObVHSm6ORY5eAb6M=
- dependencies:
- "@types/react" "*"
-
"@types/tapable@*", "@types/tapable@1.0.6":
version "1.0.6"
resolved "https://registry.npm.taobao.org/@types/tapable/download/@types/tapable-1.0.6.tgz#a9ca4b70a18b270ccb2bc0aaafefd1d486b7ea74"
@@ -4132,7 +4106,7 @@ arch@^2.1.2:
resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11"
integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==
-argparse@^1.0.10, argparse@^1.0.7:
+argparse@^1.0.7:
version "1.0.10"
resolved "https://registry.npm.taobao.org/argparse/download/argparse-1.0.10.tgz?cache=0&sync_timestamp=1597414347077&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fargparse%2Fdownload%2Fargparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
integrity sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=
@@ -4382,13 +4356,6 @@ atob@^2.1.2:
resolved "https://registry.npm.taobao.org/atob/download/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
integrity sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k=
-autolinker@^3.11.0:
- version "3.14.1"
- resolved "https://registry.npm.taobao.org/autolinker/download/autolinker-3.14.1.tgz#6ae4b812b6eaf42d4d68138b9e67757cbf2bc1e4"
- integrity sha1-auS4Erbq9C1NaBOLnmd1fL8rweQ=
- dependencies:
- tslib "^1.9.3"
-
autoprefixer@^9.0.0, autoprefixer@^9.5.1, autoprefixer@^9.6.1, autoprefixer@^9.8.0:
version "9.8.6"
resolved "https://registry.npm.taobao.org/autoprefixer/download/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f"
@@ -4620,7 +4587,12 @@ balanced-match@^1.0.0:
resolved "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
-base64-js@^1.0.2, base64-js@^1.2.0:
+base-64@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npm.taobao.org/base-64/download/base-64-1.0.0.tgz#09d0f2084e32a3fd08c2475b973788eee6ae8f4a"
+ integrity sha1-CdDyCE4yo/0IwkdblzeI7uauj0o=
+
+base64-js@^1.0.2:
version "1.3.1"
resolved "https://registry.npm.taobao.org/base64-js/download/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1"
integrity sha1-WOzoy3XdB+ce0IxzarxfrE2/jfE=
@@ -4876,11 +4848,6 @@ bser@2.1.1:
dependencies:
node-int64 "^0.4.0"
-btoa@^1.2.1:
- version "1.2.1"
- resolved "https://registry.npm.taobao.org/btoa/download/btoa-1.2.1.tgz#01a9909f8b2c93f6bf680ba26131eb30f7fa3d73"
- integrity sha1-AamQn4ssk/a/aAuiYTHrMPf6PXM=
-
buffer-crc32@~0.2.3:
version "0.2.13"
resolved "https://registry.npm.taobao.org/buffer-crc32/download/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
@@ -4905,7 +4872,7 @@ buffer@^4.3.0:
ieee754 "^1.1.4"
isarray "^1.0.0"
-buffer@^5.2.1, buffer@^5.5.0, buffer@^5.6.0:
+buffer@^5.2.1, buffer@^5.5.0:
version "5.6.0"
resolved "https://registry.npm.taobao.org/buffer/download/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786"
integrity sha1-oxdJ3H2B2E2wir+Te2uMQDP2J4Y=
@@ -5368,15 +5335,6 @@ cli-width@^3.0.0:
resolved "https://registry.npm.taobao.org/cli-width/download/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6"
integrity sha1-ovSEN6LKqaIkNueUvwceyeYc7fY=
-clipboard@^2.0.0:
- version "2.0.6"
- resolved "https://registry.npm.taobao.org/clipboard/download/clipboard-2.0.6.tgz#52921296eec0fdf77ead1749421b21c968647376"
- integrity sha1-UpISlu7A/fd+rRdJQhshyWhkc3Y=
- dependencies:
- good-listener "^1.2.2"
- select "^1.1.2"
- tiny-emitter "^2.0.0"
-
clipboardy@2.1.0:
version "2.1.0"
resolved "https://registry.npm.taobao.org/clipboardy/download/clipboardy-2.1.0.tgz#0123a0c8fac92f256dc56335e0bb8be97a4909a5"
@@ -5569,11 +5527,6 @@ combined-stream@^1.0.6, combined-stream@~1.0.6:
dependencies:
delayed-stream "~1.0.0"
-comma-separated-tokens@^1.0.0:
- version "1.0.8"
- resolved "https://registry.npm.taobao.org/comma-separated-tokens/download/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea"
- integrity sha1-YyuAthF4Z6FY8QgK1Jiy++fj9eo=
-
commander@*, commander@^6.0.0:
version "6.0.0"
resolved "https://registry.npm.taobao.org/commander/download/commander-6.0.0.tgz?cache=0&sync_timestamp=1595168173997&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-6.0.0.tgz#2b270da94f8fb9014455312f829a1129dbf8887e"
@@ -5746,11 +5699,6 @@ cookie@0.4.0:
resolved "https://registry.npm.taobao.org/cookie/download/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba"
integrity sha1-vrQ35wIrO21JAZ0IhmUwPr6cFLo=
-cookie@~0.4.1:
- version "0.4.1"
- resolved "https://registry.npm.taobao.org/cookie/download/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1"
- integrity sha1-r9cT/ibr0hupXOth+agRblClN9E=
-
copy-concurrently@^1.0.0:
version "1.0.5"
resolved "https://registry.npm.taobao.org/copy-concurrently/download/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0"
@@ -5816,7 +5764,7 @@ core-js@^1.0.0:
resolved "https://registry.npm.taobao.org/core-js/download/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636"
integrity sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=
-core-js@^2.4.0, core-js@^2.5.7, core-js@^2.6.11, core-js@^2.6.5:
+core-js@^2.4.0, core-js@^2.5.7, core-js@^2.6.5:
version "2.6.11"
resolved "https://registry.npm.taobao.org/core-js/download/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c"
integrity sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=
@@ -5889,7 +5837,7 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7:
safe-buffer "^5.0.1"
sha.js "^2.4.8"
-create-react-class@^15.5.1, create-react-class@^15.6.0:
+create-react-class@^15.6.0:
version "15.6.3"
resolved "https://registry.npm.taobao.org/create-react-class/download/create-react-class-15.6.3.tgz#2d73237fb3f970ae6ebe011a9e66f46dbca80036"
integrity sha1-LXMjf7P5cK5uvgEanmb0bbyoADY=
@@ -5910,13 +5858,6 @@ cross-env@^7.0.0:
dependencies:
cross-spawn "^7.0.1"
-cross-fetch@^3.0.5:
- version "3.0.6"
- resolved "https://registry.npm.taobao.org/cross-fetch/download/cross-fetch-3.0.6.tgz?cache=0&sync_timestamp=1599789185546&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-fetch%2Fdownload%2Fcross-fetch-3.0.6.tgz#3a4040bc8941e653e0e9cf17f29ebcd177d3365c"
- integrity sha1-OkBAvIlB5lPg6c8X8p680XfTNlw=
- dependencies:
- node-fetch "2.6.1"
-
cross-port-killer@^1.1.1:
version "1.2.1"
resolved "https://registry.npm.taobao.org/cross-port-killer/download/cross-port-killer-1.2.1.tgz#30f5912dba758e25ae250feb16687a472142c8ef"
@@ -6108,11 +6049,6 @@ css-what@^3.2.1:
resolved "https://registry.npm.taobao.org/css-what/download/css-what-3.3.0.tgz#10fec696a9ece2e591ac772d759aacabac38cd39"
integrity sha1-EP7Glqns4uWRrHctdZqsq6w4zTk=
-css.escape@1.5.1:
- version "1.5.1"
- resolved "https://registry.npm.taobao.org/css.escape/download/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb"
- integrity sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=
-
cssdb@^4.4.0:
version "4.4.0"
resolved "https://registry.npm.taobao.org/cssdb/download/cssdb-4.4.0.tgz#3bf2f2a68c10f5c6a08abd92378331ee803cddb0"
@@ -6227,11 +6163,6 @@ cssstyle@^2.0.0:
dependencies:
cssom "~0.3.6"
-csstype@^2.2.0:
- version "2.6.13"
- resolved "https://registry.npm.taobao.org/csstype/download/csstype-2.6.13.tgz?cache=0&sync_timestamp=1598348227965&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcsstype%2Fdownload%2Fcsstype-2.6.13.tgz#a6893015b90e84dd6e85d0e3b442a1e84f2dbe0f"
- integrity sha1-pokwFbkOhN1uhdDjtEKh6E8tvg8=
-
csstype@^3.0.2:
version "3.0.3"
resolved "https://registry.npm.taobao.org/csstype/download/csstype-3.0.3.tgz?cache=0&sync_timestamp=1598348228932&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcsstype%2Fdownload%2Fcsstype-3.0.3.tgz#2b410bbeba38ba9633353aff34b05d9755d065f8"
@@ -6417,7 +6348,7 @@ dedent@^0.7.0:
resolved "https://registry.npm.taobao.org/dedent/download/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c"
integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=
-deep-extend@0.6.0, deep-extend@^0.6.0, deep-extend@~0.6.0:
+deep-extend@^0.6.0:
version "0.6.0"
resolved "https://registry.npm.taobao.org/deep-extend/download/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
integrity sha1-xPp8lUBKF6nD6Mp+FTcxK3NjMKw=
@@ -6483,11 +6414,6 @@ delayed-stream@~1.0.0:
resolved "https://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
-delegate@^3.1.2:
- version "3.2.0"
- resolved "https://registry.npm.taobao.org/delegate/download/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166"
- integrity sha1-tmtxwxWFIuirV0T3INjKDCr1kWY=
-
depd@~1.1.2:
version "1.1.2"
resolved "https://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
@@ -6669,11 +6595,6 @@ domhandler@^2.3.0:
dependencies:
domelementtype "1"
-dompurify@^2.0.7:
- version "2.0.15"
- resolved "https://registry.npm.taobao.org/dompurify/download/dompurify-2.0.15.tgz#80e300fc3e89547bd0af1aff2eba88ce17fc9dea"
- integrity sha1-gOMA/D6JVHvQrxr/LrqIzhf8neo=
-
domutils@1.5.1:
version "1.5.1"
resolved "https://registry.npm.taobao.org/domutils/download/domutils-1.5.1.tgz?cache=0&sync_timestamp=1597680585980&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomutils%2Fdownload%2Fdomutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf"
@@ -6832,11 +6753,6 @@ elliptic@^6.5.3:
minimalistic-assert "^1.0.0"
minimalistic-crypto-utils "^1.0.0"
-emitter-component@^1.1.1:
- version "1.1.1"
- resolved "https://registry.npm.taobao.org/emitter-component/download/emitter-component-1.1.1.tgz#065e2dbed6959bf470679edabeaf7981d1003ab6"
- integrity sha1-Bl4tvtaVm/RwZ57avq95gdEAOrY=
-
emoji-regex@^7.0.1:
version "7.0.3"
resolved "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
@@ -7938,11 +7854,6 @@ fast-deep-equal@3.1.1:
resolved "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-3.1.1.tgz?cache=0&sync_timestamp=1591599666712&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4"
integrity sha1-VFFFB3xQFJHjOxXsQIwpQ3bpSuQ=
-fast-deep-equal@^2.0.1:
- version "2.0.1"
- resolved "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49"
- integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=
-
fast-deep-equal@^3.1.1:
version "3.1.3"
resolved "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz?cache=0&sync_timestamp=1591599666712&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
@@ -7972,13 +7883,6 @@ fast-glob@^3.0.3, fast-glob@^3.1.1:
micromatch "^4.0.2"
picomatch "^2.2.1"
-fast-json-patch@^2.2.1:
- version "2.2.1"
- resolved "https://registry.npm.taobao.org/fast-json-patch/download/fast-json-patch-2.2.1.tgz#18150d36c9ab65c7209e7d4eb113f4f8eaabe6d9"
- integrity sha1-GBUNNsmrZccgnn1OsRP0+Oqr5tk=
- dependencies:
- fast-deep-equal "^2.0.1"
-
fast-json-stable-stringify@^2.0.0:
version "2.1.0"
resolved "https://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
@@ -7996,13 +7900,6 @@ fastq@^1.6.0:
dependencies:
reusify "^1.0.4"
-fault@^1.0.0:
- version "1.0.4"
- resolved "https://registry.npm.taobao.org/fault/download/fault-1.0.4.tgz#eafcfc0a6d214fc94601e170df29954a4f842f13"
- integrity sha1-6vz8Cm0hT8lGAeFw3ymVSk+ELxM=
- dependencies:
- format "^0.2.0"
-
faye-websocket@^0.10.0:
version "0.10.0"
resolved "https://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4"
@@ -8270,7 +8167,7 @@ fork-ts-checker-webpack-plugin@5.0.12:
semver "^7.3.2"
tapable "^1.0.0"
-form-data@^2.3.2, form-data@^2.5.0:
+form-data@^2.5.0:
version "2.5.1"
resolved "https://registry.npm.taobao.org/form-data/download/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4"
integrity sha1-8svsV7XlniNxbhKP5E1OXdI4lfQ=
@@ -8293,11 +8190,6 @@ format-util@^1.0.3:
resolved "https://registry.npm.taobao.org/format-util/download/format-util-1.0.5.tgz#1ffb450c8a03e7bccffe40643180918cc297d271"
integrity sha1-H/tFDIoD57zP/kBkMYCRjMKX0nE=
-format@^0.2.0:
- version "0.2.2"
- resolved "https://registry.npm.taobao.org/format/download/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b"
- integrity sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=
-
forwarded@~0.1.2:
version "0.1.2"
resolved "https://registry.npm.taobao.org/forwarded/download/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84"
@@ -8688,13 +8580,6 @@ gonzales-pe@^4.2.3, gonzales-pe@^4.3.0:
dependencies:
minimist "^1.2.5"
-good-listener@^1.2.2:
- version "1.2.2"
- resolved "https://registry.npm.taobao.org/good-listener/download/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50"
- integrity sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=
- dependencies:
- delegate "^3.1.2"
-
got@9.6.0:
version "9.6.0"
resolved "https://registry.npm.taobao.org/got/download/got-9.6.0.tgz?cache=0&sync_timestamp=1596795620076&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fgot%2Fdownload%2Fgot-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85"
@@ -8853,21 +8738,6 @@ hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7:
inherits "^2.0.3"
minimalistic-assert "^1.0.1"
-hast-util-parse-selector@^2.0.0:
- version "2.2.4"
- resolved "https://registry.npm.taobao.org/hast-util-parse-selector/download/hast-util-parse-selector-2.2.4.tgz#60c99d0b519e12ab4ed32e58f150ec3f61ed1974"
- integrity sha1-YMmdC1GeEqtO0y5Y8VDsP2HtGXQ=
-
-hastscript@^5.0.0:
- version "5.1.2"
- resolved "https://registry.npm.taobao.org/hastscript/download/hastscript-5.1.2.tgz#bde2c2e56d04c62dd24e8c5df288d050a355fb8a"
- integrity sha1-veLC5W0Exi3SToxd8ojQUKNV+4o=
- dependencies:
- comma-separated-tokens "^1.0.0"
- hast-util-parse-selector "^2.0.0"
- property-information "^5.0.0"
- space-separated-tokens "^1.0.0"
-
heap@0.2.5:
version "0.2.5"
resolved "https://registry.npm.taobao.org/heap/download/heap-0.2.5.tgz#713b65590ebcc40fcbeeaf55e851694092b39af1"
@@ -8878,16 +8748,6 @@ hex-color-regex@^1.1.0:
resolved "https://registry.npm.taobao.org/hex-color-regex/download/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e"
integrity sha1-TAb8y0YC/iYCs8k9+C1+fb8aio4=
-highlight.js@^10.1.1:
- version "10.2.0"
- resolved "https://registry.npm.taobao.org/highlight.js/download/highlight.js-10.2.0.tgz#367151bcf813adebc54822f1cb51d2e1e599619f"
- integrity sha1-NnFRvPgTrevFSCLxy1HS4eWZYZ8=
-
-highlight.js@~10.1.0:
- version "10.1.2"
- resolved "https://registry.npm.taobao.org/highlight.js/download/highlight.js-10.1.2.tgz#c20db951ba1c22c055010648dfffd7b2a968e00c"
- integrity sha1-wg25UbocIsBVAQZI3//Xsqlo4Aw=
-
history-with-query@4.10.3:
version "4.10.3"
resolved "https://registry.npm.taobao.org/history-with-query/download/history-with-query-4.10.3.tgz#9430a6f59a223796a68a436c0c4c7590233805a6"
@@ -9137,7 +8997,7 @@ identity-obj-proxy@3.0.0:
dependencies:
harmony-reflect "^1.4.6"
-ieee754@^1.1.13, ieee754@^1.1.4:
+ieee754@^1.1.4:
version "1.1.13"
resolved "https://registry.npm.taobao.org/ieee754/download/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84"
integrity sha1-7BaFWOlaoYH9h9N/VcMrvLZwi4Q=
@@ -9187,7 +9047,7 @@ immer@^5.0.0:
resolved "https://registry.npm.taobao.org/immer/download/immer-5.3.6.tgz#51eab8cbbeb13075fe2244250f221598818cac04"
integrity sha1-Ueq4y76xMHX+IkQlDyIVmIGMrAQ=
-immutable@^3.8.1, immutable@^3.x.x:
+immutable@^3.8.1:
version "3.8.2"
resolved "https://registry.npm.taobao.org/immutable/download/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3"
integrity sha1-wkOZUUVbs5kT2vKBN28VMOEErfM=
@@ -9409,7 +9269,7 @@ intl@1.2.5:
resolved "https://registry.npm.taobao.org/intl/download/intl-1.2.5.tgz#82244a2190c4e419f8371f5aa34daa3420e2abde"
integrity sha1-giRKIZDE5Bn4Nx9ao02qNCDiq94=
-invariant@^2.0.0, invariant@^2.2.1, invariant@^2.2.2, invariant@^2.2.4:
+invariant@^2.2.1, invariant@^2.2.2, invariant@^2.2.4:
version "2.2.4"
resolved "https://registry.npm.taobao.org/invariant/download/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
integrity sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY=
@@ -9598,14 +9458,6 @@ is-docker@^2.0.0:
resolved "https://registry.npm.taobao.org/is-docker/download/is-docker-2.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-docker%2Fdownload%2Fis-docker-2.1.1.tgz#4125a88e44e450d384e09047ede71adc2d144156"
integrity sha1-QSWojkTkUNOE4JBH7eca3C0UQVY=
-is-dom@^1.0.9:
- version "1.1.0"
- resolved "https://registry.npm.taobao.org/is-dom/download/is-dom-1.1.0.tgz#af1fced292742443bb59ca3f76ab5e80907b4e8a"
- integrity sha1-rx/O0pJ0JEO7Wco/dqtegJB7Too=
- dependencies:
- is-object "^1.0.1"
- is-window "^1.0.2"
-
is-extendable@^0.1.0, is-extendable@^0.1.1:
version "0.1.1"
resolved "https://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
@@ -9714,11 +9566,6 @@ is-obj@^2.0.0:
resolved "https://registry.npm.taobao.org/is-obj/download/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982"
integrity sha1-Rz+wXZc3BeP9liBUUBjKjiLvSYI=
-is-object@^1.0.1:
- version "1.0.1"
- resolved "https://registry.npm.taobao.org/is-object/download/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470"
- integrity sha1-iVJojF7C/9awPsyF52ngKQMINHA=
-
is-observable@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e"
@@ -9860,11 +9707,6 @@ is-whitespace-character@^1.0.0:
resolved "https://registry.npm.taobao.org/is-whitespace-character/download/is-whitespace-character-1.0.4.tgz#0858edd94a95594c7c9dd0b5c174ec6e45ee4aa7"
integrity sha1-CFjt2UqVWUx8ndC1wXTsbkXuSqc=
-is-window@^1.0.2:
- version "1.0.2"
- resolved "https://registry.npm.taobao.org/is-window/download/is-window-1.0.2.tgz#2c896ca53db97de45d3c33133a65d8c9f563480d"
- integrity sha1-LIlspT25feRdPDMTOmXYyfVjSA0=
-
is-windows@^1.0.2:
version "1.0.2"
resolved "https://registry.npm.taobao.org/is-windows/download/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
@@ -9927,13 +9769,6 @@ isomorphic-fetch@^2.1.1, isomorphic-fetch@^2.2.1:
node-fetch "^1.0.1"
whatwg-fetch ">=0.10.0"
-isomorphic-form-data@~2.0.0:
- version "2.0.0"
- resolved "https://registry.npm.taobao.org/isomorphic-form-data/download/isomorphic-form-data-2.0.0.tgz#9f6adf1c4c61ae3aefd8f110ab60fb9b143d6cec"
- integrity sha1-n2rfHExhrjrv2PEQq2D7mxQ9bOw=
- dependencies:
- form-data "^2.3.2"
-
isstream@~0.1.2:
version "0.1.2"
resolved "https://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
@@ -10496,11 +10331,6 @@ js-beautify@^1.13.0:
mkdirp "^1.0.4"
nopt "^5.0.0"
-js-file-download@^0.4.1:
- version "0.4.12"
- resolved "https://registry.npm.taobao.org/js-file-download/download/js-file-download-0.4.12.tgz#10c70ef362559a5b23cdbdc3bd6f399c3d91d821"
- integrity sha1-EMcO82JVmlsjzb3DvW85nD2R2CE=
-
"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
version "4.0.0"
resolved "https://registry.npm.taobao.org/js-tokens/download/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
@@ -10511,7 +10341,7 @@ js-tokens@^3.0.2:
resolved "https://registry.npm.taobao.org/js-tokens/download/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls=
-js-yaml@^3.12.1, js-yaml@^3.13.0, js-yaml@^3.13.1, js-yaml@^3.14.0:
+js-yaml@^3.12.1, js-yaml@^3.13.0, js-yaml@^3.13.1:
version "3.14.0"
resolved "https://registry.npm.taobao.org/js-yaml/download/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482"
integrity sha1-p6NBcPJqIbsWJCTYray0ETpp5II=
@@ -11097,11 +10927,6 @@ locate-path@^5.0.0:
dependencies:
p-locate "^4.1.0"
-lodash-es@^4.2.1:
- version "4.17.15"
- resolved "https://registry.npm.taobao.org/lodash-es/download/lodash-es-4.17.15.tgz#21bd96839354412f23d7a10340e5eac6ee455d78"
- integrity sha1-Ib2Wg5NUQS8j16EDQOXqxu5FXXg=
-
lodash._reinterpolate@^3.0.0:
version "3.0.0"
resolved "https://registry.npm.taobao.org/lodash._reinterpolate/download/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
@@ -11112,7 +10937,7 @@ lodash.camelcase@^4.1.1:
resolved "https://registry.npm.taobao.org/lodash.camelcase/download/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY=
-lodash.debounce@^4, lodash.debounce@^4.0.8:
+lodash.debounce@^4.0.8:
version "4.0.8"
resolved "https://registry.npm.taobao.org/lodash.debounce/download/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168=
@@ -11232,7 +11057,7 @@ lodash.zip@^4.2.0:
resolved "https://registry.npm.taobao.org/lodash.zip/download/lodash.zip-4.2.0.tgz#ec6662e4896408ed4ab6c542a3990b72cc080020"
integrity sha1-7GZi5IlkCO1KtsVCo5kLcswIACA=
-lodash@4.17.20, "lodash@>=3.5 <5", lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1:
+lodash@4.17.20, "lodash@>=3.5 <5", lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.4, lodash@^4.17.5:
version "4.17.20"
resolved "https://registry.npm.taobao.org/lodash/download/lodash-4.17.20.tgz?cache=0&sync_timestamp=1597336001963&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
integrity sha1-tEqbYpe8tpjxxRo1RaKzs2jVnFI=
@@ -11335,14 +11160,6 @@ lowercase-keys@^2.0.0:
resolved "https://registry.npm.taobao.org/lowercase-keys/download/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479"
integrity sha1-JgPni3tLAAbLyi+8yKMgJVislHk=
-lowlight@^1.14.0:
- version "1.14.0"
- resolved "https://registry.npm.taobao.org/lowlight/download/lowlight-1.14.0.tgz?cache=0&sync_timestamp=1592130682424&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flowlight%2Fdownload%2Flowlight-1.14.0.tgz#83ebc143fec0f9e6c0d3deffe01be129ce56b108"
- integrity sha1-g+vBQ/7A+ebA097/4BvhKc5WsQg=
- dependencies:
- fault "^1.0.0"
- highlight.js "~10.1.0"
-
lru-cache@^4.1.5:
version "4.1.5"
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd"
@@ -11559,7 +11376,7 @@ memoize-one@^5.0.0, memoize-one@^5.1.1:
resolved "https://registry.npm.taobao.org/memoize-one/download/memoize-one-5.1.1.tgz#047b6e3199b508eaec03504de71229b8eb1d75c0"
integrity sha1-BHtuMZm1COrsA1BN5xIpuOsddcA=
-memoizee@^0.4.12, memoizee@^0.4.14:
+memoizee@^0.4.14:
version "0.4.14"
resolved "https://registry.npm.taobao.org/memoizee/download/memoizee-0.4.14.tgz#07a00f204699f9a95c2d9e77218271c7cd610d57"
integrity sha1-B6APIEaZ+alcLZ53IYJxx81hDVc=
@@ -12093,11 +11910,6 @@ node-fetch@2.6.0, node-fetch@^2.6.0:
resolved "https://registry.npm.taobao.org/node-fetch/download/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd"
integrity sha1-5jNFY4bUqlWGP2dqerDaqP3ssP0=
-node-fetch@2.6.1:
- version "2.6.1"
- resolved "https://registry.npm.taobao.org/node-fetch/download/node-fetch-2.6.1.tgz?cache=0&sync_timestamp=1599309120224&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-fetch%2Fdownload%2Fnode-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052"
- integrity sha1-BFvTI2Mfdu0uK1VXM5RBa2OaAFI=
-
node-fetch@^1.0.1:
version "1.7.3"
resolved "https://registry.npm.taobao.org/node-fetch/download/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef"
@@ -12893,11 +12705,6 @@ pend@~1.2.0:
resolved "https://registry.npm.taobao.org/pend/download/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA=
-performance-now@^0.2.0:
- version "0.2.0"
- resolved "https://registry.npm.taobao.org/performance-now/download/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5"
- integrity sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=
-
performance-now@^2.1.0:
version "2.1.0"
resolved "https://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
@@ -13863,13 +13670,6 @@ pretty-time@^1.1.0:
resolved "https://registry.npm.taobao.org/pretty-time/download/pretty-time-1.1.0.tgz#ffb7429afabb8535c346a34e41873adf3d74dd0e"
integrity sha1-/7dCmvq7hTXDRqNOQYc63z103Q4=
-prismjs@^1.21.0, prismjs@~1.21.0:
- version "1.21.0"
- resolved "https://registry.npm.taobao.org/prismjs/download/prismjs-1.21.0.tgz#36c086ec36b45319ec4218ee164c110f9fc015a3"
- integrity sha1-NsCG7Da0UxnsQhjuFkwRD5/AFaM=
- optionalDependencies:
- clipboard "^2.0.0"
-
pro-download@1.0.1:
version "1.0.1"
resolved "https://registry.npm.taobao.org/pro-download/download/pro-download-1.0.1.tgz#1144d98138bbc188572109aaf8bdbf3d4d88ee2d"
@@ -13933,13 +13733,6 @@ prop-types@15.x, prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.6, pr
object-assign "^4.1.1"
react-is "^16.8.1"
-property-information@^5.0.0:
- version "5.5.0"
- resolved "https://registry.npm.taobao.org/property-information/download/property-information-5.5.0.tgz#4dc075d493061a82e2b7d096f406e076ed859943"
- integrity sha1-TcB11JMGGoLit9CW9Abgdu2FmUM=
- dependencies:
- xtend "^4.0.0"
-
proto-list@~1.2.1:
version "1.2.4"
resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849"
@@ -14078,7 +13871,7 @@ qs@6.7.0:
resolved "https://registry.npm.taobao.org/qs/download/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
integrity sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=
-qs@^6.9.0, qs@^6.9.1, qs@^6.9.4:
+qs@^6.9.0, qs@^6.9.1:
version "6.9.4"
resolved "https://registry.npm.taobao.org/qs/download/qs-6.9.4.tgz#9090b290d1f91728d3c22e54843ca44aea5ab687"
integrity sha1-kJCykNH5FyjTwi5UhDykSupatoc=
@@ -14105,10 +13898,14 @@ query-string@^6.11.0:
split-on-first "^1.0.0"
strict-uri-encode "^2.0.0"
-querystring-browser@^1.0.4:
- version "1.0.4"
- resolved "https://registry.npm.taobao.org/querystring-browser/download/querystring-browser-1.0.4.tgz#f2e35881840a819bc7b1bf597faf0979e6622dc6"
- integrity sha1-8uNYgYQKgZvHsb9Zf68JeeZiLcY=
+query-string@^6.13.7:
+ version "6.13.7"
+ resolved "https://registry.npm.taobao.org/query-string/download/query-string-6.13.7.tgz?cache=0&sync_timestamp=1604609929956&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fquery-string%2Fdownload%2Fquery-string-6.13.7.tgz#af53802ff6ed56f3345f92d40a056f93681026ee"
+ integrity sha1-r1OAL/btVvM0X5LUCgVvk2gQJu4=
+ dependencies:
+ decode-uri-component "^0.2.0"
+ split-on-first "^1.0.0"
+ strict-uri-encode "^2.0.0"
querystring-es3@^0.2.0:
version "0.2.1"
@@ -14659,14 +14456,6 @@ react-app-polyfill@^1.0.4:
regenerator-runtime "^0.13.3"
whatwg-fetch "^3.0.0"
-react-copy-to-clipboard@5.0.1:
- version "5.0.1"
- resolved "https://registry.npm.taobao.org/react-copy-to-clipboard/download/react-copy-to-clipboard-5.0.1.tgz#8eae107bb400be73132ed3b6a7b4fb156090208e"
- integrity sha1-jq4Qe7QAvnMTLtO2p7T7FWCQII4=
- dependencies:
- copy-to-clipboard "^3"
- prop-types "^15.5.8"
-
react-copy-to-clipboard@^5.0.1:
version "5.0.2"
resolved "https://registry.npm.taobao.org/react-copy-to-clipboard/download/react-copy-to-clipboard-5.0.2.tgz#d82a437e081e68dfca3761fbd57dbf2abdda1316"
@@ -14675,14 +14464,6 @@ react-copy-to-clipboard@^5.0.1:
copy-to-clipboard "^3"
prop-types "^15.5.8"
-react-debounce-input@^3.2.0:
- version "3.2.2"
- resolved "https://registry.npm.taobao.org/react-debounce-input/download/react-debounce-input-3.2.2.tgz#d2cc99c1ce47fae89037965f5699edc1b0317197"
- integrity sha1-0syZwc5H+uiQN5ZfVpntwbAxcZc=
- dependencies:
- lodash.debounce "^4"
- prop-types "^15.7.2"
-
react-dev-utils@9.0.1:
version "9.0.1"
resolved "https://registry.npm.taobao.org/react-dev-utils/download/react-dev-utils-9.0.1.tgz?cache=0&sync_timestamp=1596670540753&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-dev-utils%2Fdownload%2Freact-dev-utils-9.0.1.tgz#5c03d85a0b2537d0c46af7165c24a7dfb274bef2"
@@ -14797,27 +14578,6 @@ react-helmet@6.0.0:
react-fast-compare "^2.0.4"
react-side-effect "^2.1.0"
-react-immutable-proptypes@2.1.0:
- version "2.1.0"
- resolved "https://registry.npm.taobao.org/react-immutable-proptypes/download/react-immutable-proptypes-2.1.0.tgz#023d6f39bb15c97c071e9e60d00d136eac5fa0b4"
- integrity sha1-Aj1vObsVyXwHHp5g0A0TbqxfoLQ=
-
-react-immutable-pure-component@^1.1.1:
- version "1.2.3"
- resolved "https://registry.npm.taobao.org/react-immutable-pure-component/download/react-immutable-pure-component-1.2.3.tgz#fa33638df68cfe9f73ccbee1d5861c17f3053f86"
- integrity sha1-+jNjjfaM/p9zzL7h1YYcF/MFP4Y=
- optionalDependencies:
- "@types/react" "16.4.6"
-
-react-inspector@^2.3.0:
- version "2.3.1"
- resolved "https://registry.npm.taobao.org/react-inspector/download/react-inspector-2.3.1.tgz?cache=0&sync_timestamp=1599743804154&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-inspector%2Fdownload%2Freact-inspector-2.3.1.tgz#f0eb7f520669b545b441af9d38ec6d706e5f649c"
- integrity sha1-8Ot/UgZptUW0Qa+dOOxtcG5fZJw=
- dependencies:
- babel-runtime "^6.26.0"
- is-dom "^1.0.9"
- prop-types "^15.6.1"
-
react-intl@3.12.0:
version "3.12.0"
resolved "https://registry.npm.taobao.org/react-intl/download/react-intl-3.12.0.tgz#98ef1c94434cc25a8c67448e1e283e6bfe11b2fc"
@@ -14848,15 +14608,6 @@ react-lifecycles-compat@^3.0.4:
resolved "https://registry.npm.taobao.org/react-lifecycles-compat/download/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362"
integrity sha1-TxonOv38jzSIqMUWv9p4+HI1I2I=
-react-motion@^0.5.2:
- version "0.5.2"
- resolved "https://registry.npm.taobao.org/react-motion/download/react-motion-0.5.2.tgz#0dd3a69e411316567927917c6626551ba0607316"
- integrity sha1-DdOmnkETFlZ5J5F8ZiZVG6BgcxY=
- dependencies:
- performance-now "^0.2.0"
- prop-types "^15.5.8"
- raf "^3.1.0"
-
react-native-swipeout@^2.2.2:
version "2.3.6"
resolved "https://registry.npm.taobao.org/react-native-swipeout/download/react-native-swipeout-2.3.6.tgz#47dac8a835825cf3f2eef9e495574a3d9ab6d3fa"
@@ -14866,18 +14617,6 @@ react-native-swipeout@^2.2.2:
prop-types "^15.5.10"
react-tween-state "^0.1.5"
-react-redux@=4.4.10:
- version "4.4.10"
- resolved "https://registry.npm.taobao.org/react-redux/download/react-redux-4.4.10.tgz#ad57bd1db00c2d0aa7db992b360ce63dd0b80ec5"
- integrity sha1-rVe9HbAMLQqn25krNgzmPdC4DsU=
- dependencies:
- create-react-class "^15.5.1"
- hoist-non-react-statics "^3.3.0"
- invariant "^2.0.0"
- lodash "^4.17.11"
- loose-envify "^1.4.0"
- prop-types "^15.7.2"
-
react-redux@^7.1.0:
version "7.2.1"
resolved "https://registry.npm.taobao.org/react-redux/download/react-redux-7.2.1.tgz?cache=0&sync_timestamp=1595765616486&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-redux%2Fdownload%2Freact-redux-7.2.1.tgz#8dedf784901014db2feca1ab633864dee68ad985"
@@ -14974,17 +14713,6 @@ react-side-effect@^2.1.0:
resolved "https://registry.npm.taobao.org/react-side-effect/download/react-side-effect-2.1.0.tgz#1ce4a8b4445168c487ed24dab886421f74d380d3"
integrity sha1-HOSotERRaMSH7STauIZCH3TTgNM=
-react-syntax-highlighter@=13.5.0:
- version "13.5.0"
- resolved "https://registry.npm.taobao.org/react-syntax-highlighter/download/react-syntax-highlighter-13.5.0.tgz#c0f3fd826a52b2a6ce5786d4ce60c3e0665b65c0"
- integrity sha1-wPP9gmpSsqbOV4bUzmDD4GZbZcA=
- dependencies:
- "@babel/runtime" "^7.3.1"
- highlight.js "^10.1.1"
- lowlight "^1.14.0"
- prismjs "^1.21.0"
- refractor "^3.1.0"
-
react-tween-state@^0.1.5:
version "0.1.5"
resolved "https://registry.npm.taobao.org/react-tween-state/download/react-tween-state-0.1.5.tgz#e98b066551efb93cb92dd1be14995c2e3deae339"
@@ -15158,28 +14886,11 @@ redeyed@~2.1.0:
dependencies:
esprima "~4.0.0"
-redux-immutable@3.1.0:
- version "3.1.0"
- resolved "https://registry.npm.taobao.org/redux-immutable/download/redux-immutable-3.1.0.tgz#cafbd686e0711261119b9c28960935dc47a49d0a"
- integrity sha1-yvvWhuBxEmERm5wolgk13EeknQo=
- dependencies:
- immutable "^3.8.1"
-
redux-saga@^0.16.0:
version "0.16.2"
resolved "https://registry.npm.taobao.org/redux-saga/download/redux-saga-0.16.2.tgz#993662e86bc945d8509ac2b8daba3a8c615cc971"
integrity sha1-mTZi6GvJRdhQmsK42ro6jGFcyXE=
-redux@=3.7.2:
- version "3.7.2"
- resolved "https://registry.npm.taobao.org/redux/download/redux-3.7.2.tgz#06b73123215901d25d065be342eb026bc1c8537b"
- integrity sha1-BrcxIyFZAdJdBlvjQusCa8HIU3s=
- dependencies:
- lodash "^4.2.1"
- lodash-es "^4.2.1"
- loose-envify "^1.1.0"
- symbol-observable "^1.0.3"
-
redux@^4.0.0, redux@^4.0.1, redux@^4.0.4:
version "4.0.5"
resolved "https://registry.npm.taobao.org/redux/download/redux-4.0.5.tgz#4db5de5816e17891de8a80c424232d06f051d93f"
@@ -15188,15 +14899,6 @@ redux@^4.0.0, redux@^4.0.1, redux@^4.0.4:
loose-envify "^1.4.0"
symbol-observable "^1.2.0"
-refractor@^3.1.0:
- version "3.1.0"
- resolved "https://registry.npm.taobao.org/refractor/download/refractor-3.1.0.tgz#b05a43c8a1b4fccb30001ffcbd5cd781f7f06f78"
- integrity sha1-sFpDyKG0/MswAB/8vVzXgffwb3g=
- dependencies:
- hastscript "^5.0.0"
- parse-entities "^2.0.0"
- prismjs "~1.21.0"
-
regenerate-unicode-properties@^8.2.0:
version "8.2.0"
resolved "https://registry.npm.taobao.org/regenerate-unicode-properties/download/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec"
@@ -15413,14 +15115,6 @@ remark@^12.0.0:
remark-stringify "^8.0.0"
unified "^9.0.0"
-remarkable@^2.0.1:
- version "2.0.1"
- resolved "https://registry.npm.taobao.org/remarkable/download/remarkable-2.0.1.tgz#280ae6627384dfb13d98ee3995627ca550a12f31"
- integrity sha1-KArmYnOE37E9mO45lWJ8pVChLzE=
- dependencies:
- argparse "^1.0.10"
- autolinker "^3.11.0"
-
remove-trailing-separator@^1.0.1:
version "1.1.0"
resolved "https://registry.npm.taobao.org/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
@@ -15431,7 +15125,7 @@ repeat-element@^1.1.2:
resolved "https://registry.npm.taobao.org/repeat-element/download/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce"
integrity sha1-eC4NglwMWjuzlzH4Tv7mt0Lmsc4=
-repeat-string@^1.0.0, repeat-string@^1.5.2, repeat-string@^1.5.4, repeat-string@^1.6.1:
+repeat-string@^1.0.0, repeat-string@^1.5.4, repeat-string@^1.6.1:
version "1.6.1"
resolved "https://registry.npm.taobao.org/repeat-string/download/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=
@@ -15515,11 +15209,6 @@ requires-port@^1.0.0:
resolved "https://registry.npm.taobao.org/requires-port/download/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=
-reselect@^4.0.0:
- version "4.0.0"
- resolved "https://registry.npm.taobao.org/reselect/download/reselect-4.0.0.tgz#f2529830e5d3d0e021408b246a206ef4ea4437f7"
- integrity sha1-8lKYMOXT0OAhQIskaiBu9OpEN/c=
-
reserved-words@^0.1.2:
version "0.1.2"
resolved "https://registry.npm.taobao.org/reserved-words/download/reserved-words-0.1.2.tgz#00a0940f98cd501aeaaac316411d9adc52b31ab1"
@@ -15964,11 +15653,6 @@ select-hose@^2.0.0:
resolved "https://registry.npm.taobao.org/select-hose/download/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca"
integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=
-select@^1.1.2:
- version "1.1.2"
- resolved "https://registry.npm.taobao.org/select/download/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d"
- integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=
-
semver-compare@^1.0.0:
version "1.0.0"
resolved "https://registry.npm.taobao.org/semver-compare/download/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc"
@@ -16018,11 +15702,6 @@ send@0.17.1:
range-parser "~1.2.1"
statuses "~1.5.0"
-serialize-error@^2.1.0:
- version "2.1.0"
- resolved "https://registry.npm.taobao.org/serialize-error/download/serialize-error-2.1.0.tgz#50b679d5635cdf84667bdc8e59af4e5b81d5f60a"
- integrity sha1-ULZ51WNc34Rme9yOWa9OW4HV9go=
-
serialize-javascript@4.0.0, serialize-javascript@^4.0.0:
version "4.0.0"
resolved "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa"
@@ -16077,7 +15756,7 @@ setprototypeof@1.1.1:
resolved "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683"
integrity sha1-fpWsskqpL1iF4KvvW6ExMw1K5oM=
-sha.js@^2.4.0, sha.js@^2.4.11, sha.js@^2.4.8:
+sha.js@^2.4.0, sha.js@^2.4.8:
version "2.4.11"
resolved "https://registry.npm.taobao.org/sha.js/download/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7"
integrity sha1-N6XPC4HsvGlD3hCbopYNGyZYSuc=
@@ -16388,11 +16067,6 @@ source-map@^0.7.3:
resolved "https://registry.npm.taobao.org/source-map/download/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
integrity sha1-UwL4FpAxc1ImVECS5kmB91F1A4M=
-space-separated-tokens@^1.0.0:
- version "1.1.5"
- resolved "https://registry.npm.taobao.org/space-separated-tokens/download/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899"
- integrity sha1-hfMsPRDZaCAH6RdBTdxcJtGqaJk=
-
spdx-correct@^3.0.0:
version "3.1.1"
resolved "https://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9"
@@ -16614,13 +16288,6 @@ stream-shift@^1.0.0:
resolved "https://registry.npm.taobao.org/stream-shift/download/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d"
integrity sha1-1wiCgVWasneEJCebCHfaPDktWj0=
-stream@^0.0.2:
- version "0.0.2"
- resolved "https://registry.npm.taobao.org/stream/download/stream-0.0.2.tgz#7f5363f057f6592c5595f00bc80a27f5cec1f0ef"
- integrity sha1-f1Nj8Ff2WSxVlfALyAon9c7B8O8=
- dependencies:
- emitter-component "^1.1.1"
-
streamroller@^0.4.0:
version "0.4.1"
resolved "https://registry.npm.taobao.org/streamroller/download/streamroller-0.4.1.tgz#d435bd5974373abd9bd9068359513085106cc05f"
@@ -17276,68 +16943,6 @@ svgo@^1.0.0, svgo@^1.2.2:
unquote "~1.1.1"
util.promisify "~1.0.0"
-swagger-client@=3.10.12:
- version "3.10.12"
- resolved "https://registry.npm.taobao.org/swagger-client/download/swagger-client-3.10.12.tgz#f49beb7a6f91b6e5778cfbd3fd4064413be6e791"
- integrity sha1-9Jvrem+RtuV3jPvT/UBkQTvm55E=
- dependencies:
- "@babel/runtime-corejs2" "^7.10.4"
- btoa "^1.2.1"
- buffer "^5.6.0"
- cookie "~0.4.1"
- cross-fetch "^3.0.5"
- deep-extend "~0.6.0"
- fast-json-patch "^2.2.1"
- isomorphic-form-data "~2.0.0"
- js-yaml "^3.14.0"
- lodash "^4.17.19"
- qs "^6.9.4"
- querystring-browser "^1.0.4"
- traverse "~0.6.6"
- url "~0.11.0"
-
-swagger-ui-react@^3.33.0:
- version "3.33.0"
- resolved "https://registry.npm.taobao.org/swagger-ui-react/download/swagger-ui-react-3.33.0.tgz#cae8812d4a809d416a48cd2d01fe606429742d07"
- integrity sha1-yuiBLUqAnUFqSM0tAf5gZCl0LQc=
- dependencies:
- "@babel/runtime-corejs2" "^7.10.4"
- "@braintree/sanitize-url" "^4.0.0"
- "@kyleshockey/object-assign-deep" "^0.4.2"
- "@kyleshockey/xml" "^1.0.2"
- base64-js "^1.2.0"
- classnames "^2.2.6"
- core-js "^2.6.11"
- css.escape "1.5.1"
- deep-extend "0.6.0"
- dompurify "^2.0.7"
- ieee754 "^1.1.13"
- immutable "^3.x.x"
- js-file-download "^0.4.1"
- js-yaml "^3.13.1"
- lodash "^4.17.19"
- memoizee "^0.4.12"
- prop-types "^15.7.2"
- randombytes "^2.1.0"
- react-copy-to-clipboard "5.0.1"
- react-debounce-input "^3.2.0"
- react-immutable-proptypes "2.1.0"
- react-immutable-pure-component "^1.1.1"
- react-inspector "^2.3.0"
- react-motion "^0.5.2"
- react-redux "=4.4.10"
- react-syntax-highlighter "=13.5.0"
- redux "=3.7.2"
- redux-immutable "3.1.0"
- remarkable "^2.0.1"
- reselect "^4.0.0"
- serialize-error "^2.1.0"
- sha.js "^2.4.11"
- swagger-client "=3.10.12"
- url-parse "^1.4.7"
- xml-but-prettier "^1.0.1"
- zenscroll "^4.0.2"
-
sylvanas@^0.4.0:
version "0.4.3"
resolved "https://registry.npm.taobao.org/sylvanas/download/sylvanas-0.4.3.tgz#e40ce0e651bd9f57b3a4738ce4aecbfd84eb649f"
@@ -17354,7 +16959,7 @@ sylvanas@^0.4.0:
import-fresh "^3.1.0"
prettier "^1.17.1"
-symbol-observable@^1.0.3, symbol-observable@^1.1.0, symbol-observable@^1.2.0:
+symbol-observable@^1.1.0, symbol-observable@^1.2.0:
version "1.2.0"
resolved "https://registry.npm.taobao.org/symbol-observable/download/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804"
integrity sha1-wiaIrtTqs83C3+rLtWFmBWCgCAQ=
@@ -17529,11 +17134,6 @@ timsort@^0.3.0:
resolved "https://registry.npm.taobao.org/timsort/download/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4"
integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=
-tiny-emitter@^2.0.0:
- version "2.1.0"
- resolved "https://registry.npm.taobao.org/tiny-emitter/download/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423"
- integrity sha1-HRpW7fxRxD6GPLtTgqcjMONVVCM=
-
tiny-invariant@^1.0.2:
version "1.1.0"
resolved "https://registry.npm.taobao.org/tiny-invariant/download/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875"
@@ -17654,11 +17254,6 @@ tr46@^1.0.1:
dependencies:
punycode "^2.1.0"
-traverse@~0.6.6:
- version "0.6.6"
- resolved "https://registry.npm.taobao.org/traverse/download/traverse-0.6.6.tgz?cache=0&sync_timestamp=1597756177034&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftraverse%2Fdownload%2Ftraverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137"
- integrity sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=
-
trim-newlines@^2.0.0:
version "2.0.0"
resolved "https://registry.npm.taobao.org/trim-newlines/download/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20"
@@ -17704,7 +17299,7 @@ tsconfig-paths@^3.9.0:
minimist "^1.2.0"
strip-bom "^3.0.0"
-tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3:
+tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0:
version "1.13.0"
resolved "https://registry.npm.taobao.org/tslib/download/tslib-1.13.0.tgz?cache=0&sync_timestamp=1596751967733&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043"
integrity sha1-yIHhPMcBWJTtkUhi0nZDb6mkcEM=
@@ -18197,7 +17792,7 @@ url-parse@^1.4.3, url-parse@^1.4.7:
querystringify "^2.1.1"
requires-port "^1.0.0"
-url@^0.11.0, url@~0.11.0:
+url@^0.11.0:
version "0.11.0"
resolved "https://registry.npm.taobao.org/url/download/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"
integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=
@@ -18780,13 +18375,6 @@ x-is-string@^0.1.0:
resolved "https://registry.npm.taobao.org/x-is-string/download/x-is-string-0.1.0.tgz#474b50865af3a49a9c4657f05acd145458f77d82"
integrity sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI=
-xml-but-prettier@^1.0.1:
- version "1.0.1"
- resolved "https://registry.npm.taobao.org/xml-but-prettier/download/xml-but-prettier-1.0.1.tgz#f5a33267ed42ccd4e355c62557a5e39b01fb40f3"
- integrity sha1-9aMyZ+1CzNTjVcYlV6XjmwH7QPM=
- dependencies:
- repeat-string "^1.5.2"
-
xml-name-validator@^3.0.0:
version "3.0.0"
resolved "https://registry.npm.taobao.org/xml-name-validator/download/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a"
@@ -18888,11 +18476,6 @@ yauzl@^2.10.0:
buffer-crc32 "~0.2.3"
fd-slicer "~1.1.0"
-zenscroll@^4.0.2:
- version "4.0.2"
- resolved "https://registry.npm.taobao.org/zenscroll/download/zenscroll-4.0.2.tgz#e8d5774d1c0738a47bcfa8729f3712e2deddeb25"
- integrity sha1-6NV3TRwHOKR7z6hynzcS4t7d6yU=
-
zlib@1.0.5:
version "1.0.5"
resolved "https://registry.npm.taobao.org/zlib/download/zlib-1.0.5.tgz#6e7c972fc371c645a6afb03ab14769def114fcc0"