You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by li...@apache.org on 2021/02/04 06:54:47 UTC
[dubbo-spi-extensions] 12/47: UI和UI-Server
This is an automated email from the ASF dual-hosted git repository.
liujun pushed a commit to branch 2.7.x
in repository https://gitbox.apache.org/repos/asf/dubbo-spi-extensions.git
commit 111419fe2c529c33ff3ea30fce90cb0bfbf35fee
Author: qq213539 <21...@qq.com>
AuthorDate: Sat Nov 14 22:44:24 2020 +0800
UI和UI-Server
---
dubbo-api-docs/distribution/LICENSE-BIN | 334 +
.../distribution/bin/config/application.yml | 11 +
dubbo-api-docs/distribution/bin/log4j2.xml | 23 +
dubbo-api-docs/distribution/bin/shutdown.cmd | 26 +
dubbo-api-docs/distribution/bin/shutdown.sh | 31 +
dubbo-api-docs/distribution/bin/startup.cmd | 31 +
dubbo-api-docs/distribution/bin/startup.sh | 57 +
dubbo-api-docs/distribution/pom.xml | 76 +
.../distribution/release-dubboApiDocs.xml | 54 +
.../dubbo/apidocs/core/DubboApiDocsCache.java | 50 +-
.../core/providers/DubboDocProviderImpl.java | 8 +
.../apidocs/core/providers/IDubboDocProvider.java | 11 +
.../apache/dubbo/apidocs/utils/ClassTypeUtil.java | 13 +-
.../dubbo/apidocs/examples/api/IAsyncDemo.java | 29 +-
.../dubbo/apidocs/examples/api/ISyncDemo.java | 20 +-
.../apidocs/examples/params/DemoParamBean3.java | 43 +
.../apidocs/examples/params/DemoParamBean4.java | 39 +
.../apidocs/examples/api/impl/AsyncDemoImpl.java | 29 +-
.../apidocs/examples/api/impl/SyncDemoImpl.java | 10 +
.../src/main/resources/application.yml | 6 +-
dubbo-api-docs/dubbo-api-docs-ui-server/pom.xml | 291 +
.../apidocs/DubboApiDocsUiServerApplication.java} | 30 +-
.../apache/dubbo/apidocs/cfg/SwaggerConfig.java | 62 +
.../org/apache/dubbo/apidocs/cfg/WebConfig.java} | 35 +-
.../apidocs/controller/DubboApiDocsController.java | 191 +
.../apidocs/controller/vo/ApiInfoRequest.java} | 38 +-
.../controller/vo/CallDubboServiceRequest.java} | 46 +-
.../vo/CallDubboServiceRequestInterfacePrarm.java} | 35 +-
.../dubbo/apidocs/editor/CustomDateEditor.java | 122 +
.../apidocs/editor/CustomLocalDateEditor.java} | 36 +-
.../apidocs/editor/CustomLocalDateTimeEditor.java} | 36 +-
.../dubbo/apidocs/utils/DubboGenericUtil.java | 175 +
.../dubbo/apidocs/utils/LocalDateTimeUtil.java | 75 +
.../src/main/resources/application.yml | 11 +
.../src/main/resources/banner.txt | 6 +
.../src/main/resources/log4j2.xml | 23 +
.../src/main/resources/static/css/index.css | 1 +
.../src/main/resources/static/favicon.png | Bin 0 -> 2719 bytes
.../src/main/resources/static/index.html | 29 +
.../src/main/resources/static/js/index.js | 95 +
dubbo-api-docs/dubbo-api-docs-ui/.editorconfig | 12 +
dubbo-api-docs/dubbo-api-docs-ui/.eslintignore | 11 +
dubbo-api-docs/dubbo-api-docs-ui/.eslintrc.js | 3 +
dubbo-api-docs/dubbo-api-docs-ui/.gitignore | 16 +
dubbo-api-docs/dubbo-api-docs-ui/.prettierignore | 9 +
dubbo-api-docs/dubbo-api-docs-ui/.prettierrc.js | 3 +
dubbo-api-docs/dubbo-api-docs-ui/.stylelintignore | 7 +
dubbo-api-docs/dubbo-api-docs-ui/.stylelintrc.js | 3 +
dubbo-api-docs/dubbo-api-docs-ui/README.md | 14 +
dubbo-api-docs/dubbo-api-docs-ui/build.json | 21 +
dubbo-api-docs/dubbo-api-docs-ui/package-lock.json | 24011 +++++++++++++++++++
dubbo-api-docs/dubbo-api-docs-ui/package.json | 51 +
.../dubbo-api-docs-ui/public/favicon.png | Bin 0 -> 2719 bytes
dubbo-api-docs/dubbo-api-docs-ui/public/index.html | 29 +
dubbo-api-docs/dubbo-api-docs-ui/src/app.tsx | 108 +
.../src/components/NotFound/index.module.scss | 76 +
.../src/components/NotFound/index.tsx | 45 +
.../src/components/PageLoading/index.jsx | 24 +
dubbo-api-docs/dubbo-api-docs-ui/src/constants.js | 19 +
dubbo-api-docs/dubbo-api-docs-ui/src/emit.js | 20 +
dubbo-api-docs/dubbo-api-docs-ui/src/global.scss | 39 +
.../components/Footer/index.module.scss | 29 +
.../BasicLayout/components/Footer/index.tsx | 28 +
.../BasicLayout/components/PageNav/index.tsx | 98 +
.../src/layouts/BasicLayout/index.tsx | 143 +
.../dubbo-api-docs-ui/src/locales/en-US.json | 32 +
.../dubbo-api-docs-ui/src/locales/zh-CN.json | 32 +
.../dubbo-api-docs-ui/src/pages/ApiForm/index.tsx | 613 +
.../dubbo-api-docs-ui/src/pages/Home/index.tsx | 27 +
dubbo-api-docs/dubbo-api-docs-ui/src/routes.ts | 28 +
dubbo-api-docs/dubbo-api-docs-ui/tsconfig.json | 36 +
dubbo-api-docs/pom.xml | 108 +
72 files changed, 27740 insertions(+), 193 deletions(-)
diff --git a/dubbo-api-docs/distribution/LICENSE-BIN b/dubbo-api-docs/distribution/LICENSE-BIN
new file mode 100644
index 0000000..3726172
--- /dev/null
+++ b/dubbo-api-docs/distribution/LICENSE-BIN
@@ -0,0 +1,334 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (properties) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed 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.
+
+------
+This product has a bundle logback, which is available under the EPL v1.0 License.
+The source code of logback can be found at https://github.com/qos-ch/logback.
+
+Logback LICENSE
+---------------
+
+Logback: the reliable, generic, fast and flexible logging framework.
+Copyright (C) 1999-2015, QOS.ch. All rights reserved.
+
+This program and the accompanying materials are dual-licensed under
+either the terms of the Eclipse Public License v1.0 as published by
+the Eclipse Foundation
+
+ or (per the licensee's choosing)
+
+under the terms of the GNU Lesser General Public License version 2.1
+as published by the Free Software Foundation.
+
+------
+This product has a bundle slf4j, which is available under the MIT License.
+The source code of slf4j can be found at https://github.com/qos-ch/slf4j.
+
+ Copyright (c) 2004-2017 QOS.ch
+ All rights reserved.
+
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:
+
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+------
+This product has a bundle fastjson, which is available under the ASL2 License.
+The source code of fastjson can be found at https://github.com/alibaba/fastjson.
+
+ Copyright 1999-2016 Alibaba Group Holding Ltd.
+
+ Licensed 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.
+
+------
+This product has a bundle javassist, which is available under the ASL2 License.
+The source code of javassist can be found at https://github.com/jboss-javassist/javassist.
+
+ Copyright (C) 1999- by Shigeru Chiba, All rights reserved.
+
+ Javassist (JAVA programming ASSISTant) makes Java bytecode manipulation simple.
+ It is a class library for editing bytecodes in Java; it enables Java programs to define a new class
+ at runtime and to modify a class file when the JVM loads it. Unlike other similar bytecode editors,
+ Javassist provides two levels of API: source level and bytecode level. If the users use the source- level API,
+ they can edit a class file without knowledge of the specifications of the Java bytecode.
+ The whole API is designed with only the vocabulary of the Java language.
+ You can even specify inserted bytecode in the form of source text; Javassist compiles it on the fly.
+ On the other hand, the bytecode-level API allows the users to directly edit a class file as other editors.
+
+ This software is distributed under the Mozilla Public License Version 1.1,
+ the GNU Lesser General Public License Version 2.1 or later, or the Apache License Version 2.0.
+
+------
+This product has a bundle jna, which is available under the ASL2 License.
+The source code of jna can be found at https://github.com/java-native-access/jna.
+
+ This copy of JNA is licensed under the
+ Apache (Software) License, version 2.0 ("the License").
+ See the License for details about distribution rights, and the
+ specific rights regarding derivate works.
+
+ You may obtain a copy of the License at:
+
+ http://www.apache.org/licenses/
+
+ A copy is also included in the downloadable source code package
+ containing JNA, in file "AL2.0", under the same directory
+ as this file.
+------
+This product has a bundle guava, which is available under the ASL2 License.
+The source code of guava can be found at https://github.com/google/guava.
+
+ Copyright (C) 2007 The Guava authors
+
+ Licensed 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.
+------
+This product has a bundle OpenMessaging, which is available under the ASL2 License.
+The source code of OpenMessaging can be found at https://github.com/openmessaging/openmessaging.
+
+ Copyright (C) 2017 The OpenMessaging authors.
+
+ Licensed 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.
+
diff --git a/dubbo-api-docs/distribution/bin/config/application.yml b/dubbo-api-docs/distribution/bin/config/application.yml
new file mode 100644
index 0000000..76231ff
--- /dev/null
+++ b/dubbo-api-docs/distribution/bin/config/application.yml
@@ -0,0 +1,11 @@
+server:
+ port: 8888
+spring:
+ application:
+ name: dubbo-api-docs-ui-server
+dubbo:
+ reference:
+ heartbeat: 1000
+ consumer:
+ timeout: 10000
+ retries: 0
\ No newline at end of file
diff --git a/dubbo-api-docs/distribution/bin/log4j2.xml b/dubbo-api-docs/distribution/bin/log4j2.xml
new file mode 100644
index 0000000..8bd3515
--- /dev/null
+++ b/dubbo-api-docs/distribution/bin/log4j2.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Configuration status="WARN" monitorInterval="600" shutdownHook="disable">
+ <Properties>
+ <Property name="logDir" value="/home/weihu/deploy/logs/dubbo-api-docs/" />
+ <Property name="genericPattern" value="[dubboDoc]-%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
+ <Property name="genericFilePattern" value="%d{yyyy-MM-dd HH:mm}-%i" />
+ </Properties>
+ <Appenders>
+ <Console name="consoleAppender" target="SYSTEM_OUT">
+ <PatternLayout pattern="${genericPattern}" />
+ </Console>
+
+ </Appenders>
+ <Loggers>
+ <asyncRoot level="INFO">
+ <AppenderRef ref="consoleAppender" />
+ </asyncRoot>
+
+ <logger name="org.springframework" level="ERROR" />
+ <logger name="com.alibaba" level="ERROR" />
+ <logger name="org.apache" level="ERROR" />
+ </Loggers>
+</Configuration>
diff --git a/dubbo-api-docs/distribution/bin/shutdown.cmd b/dubbo-api-docs/distribution/bin/shutdown.cmd
new file mode 100644
index 0000000..60fb33f
--- /dev/null
+++ b/dubbo-api-docs/distribution/bin/shutdown.cmd
@@ -0,0 +1,26 @@
+@echo off
+rem Licensed to the Apache Software Foundation (ASF) under one or more
+rem contributor license agreements. See the NOTICE file distributed with
+rem this work for additional information regarding copyright ownership.
+rem The ASF licenses this file to You under the Apache License, Version 2.0
+rem (the "License"); you may not use this file except in compliance with
+rem the License. You may obtain a copy of the License at
+rem
+rem http://www.apache.org/licenses/LICENSE-2.0
+rem
+rem Unless required by applicable law or agreed to in writing, software
+rem distributed under the License is distributed on an "AS IS" BASIS,
+rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+rem See the License for the specific language governing permissions and
+rem limitations under the License.
+if not exist "%JAVA_HOME%\bin\jps.exe" echo Please set the JAVA_HOME variable in your environment, We need java(x64)! jdk8 or later is better! & EXIT /B 1
+
+setlocal
+
+set "PATH=%JAVA_HOME%\bin;%PATH%"
+
+echo killing dubbo Doc server
+
+for /f "tokens=1" %%i in ('jps -m ^| find "dubbo.doc"') do ( taskkill /F /PID %%i )
+
+echo Done!
diff --git a/dubbo-api-docs/distribution/bin/shutdown.sh b/dubbo-api-docs/distribution/bin/shutdown.sh
new file mode 100644
index 0000000..0b45640
--- /dev/null
+++ b/dubbo-api-docs/distribution/bin/shutdown.sh
@@ -0,0 +1,31 @@
+#!/bin/sh
+
+# 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.
+
+cd `dirname $0`/../lib
+target_dir=`pwd`
+
+pid=`ps ax | grep -i 'dubbo.api.docs' | grep ${target_dir} | grep java | grep -v grep | awk '{print $1}'`
+if [ -z "$pid" ] ; then
+ echo "No dubbo-api-docs-ui-server running."
+ exit -1;
+fi
+
+echo "The dubbo-api-docs-ui-server(${pid}) is running..."
+
+kill ${pid}
+
+echo "Send shutdown request to dubbo-api-docs-ui-server(${pid}) OK"
diff --git a/dubbo-api-docs/distribution/bin/startup.cmd b/dubbo-api-docs/distribution/bin/startup.cmd
new file mode 100644
index 0000000..6f91812
--- /dev/null
+++ b/dubbo-api-docs/distribution/bin/startup.cmd
@@ -0,0 +1,31 @@
+@echo off
+rem Licensed to the Apache Software Foundation (ASF) under one or more
+rem contributor license agreements. See the NOTICE file distributed with
+rem this work for additional information regarding copyright ownership.
+rem The ASF licenses this file to You under the Apache License, Version 2.0
+rem (the "License"); you may not use this file except in compliance with
+rem the License. You may obtain a copy of the License at
+rem
+rem http://www.apache.org/licenses/LICENSE-2.0
+rem
+rem Unless required by applicable law or agreed to in writing, software
+rem distributed under the License is distributed on an "AS IS" BASIS,
+rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+rem See the License for the specific language governing permissions and
+rem limitations under the License.
+if not exist "%JAVA_HOME%\bin\java.exe" echo Please set the JAVA_HOME variable in your environment, We need java(x64)! jdk8 or later is better! & EXIT /B 1
+set "JAVA=%JAVA_HOME%\bin\java.exe"
+
+setlocal enabledelayedexpansion
+set BASE_DIR=%~dp0
+rem added double quotation marks to avoid the issue caused by the folder names containing spaces.
+rem removed the last 5 chars(which means \bin\) to get the base DIR.
+set BASE_DIR=%BASE_DIR:~0,-5%
+
+set SERVER=dubbo-api-docs-ui-server
+
+set "JAVA_OPT=%JAVA_OPT% -Xms512m -Xmx512m -Xmn256m"
+
+set "JAVA_OPT=%JAVA_OPT% -jar %BASE_DIR%\lib\%SERVER%.jar"
+
+call "%JAVA%" %JAVA_OPT% dubbo.doc %*
diff --git a/dubbo-api-docs/distribution/bin/startup.sh b/dubbo-api-docs/distribution/bin/startup.sh
new file mode 100644
index 0000000..039757e
--- /dev/null
+++ b/dubbo-api-docs/distribution/bin/startup.sh
@@ -0,0 +1,57 @@
+#!/bin/sh
+
+# 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.
+
+cygwin=false
+darwin=false
+os400=false
+case "`uname`" in
+CYGWIN*) cygwin=true;;
+Darwin*) darwin=true;;
+OS400*) os400=true;;
+esac
+[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=$HOME/jdk/java
+[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java
+[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/opt/taobao/java
+[ ! -e "$JAVA_HOME/bin/java" ] && unset JAVA_HOME
+
+if [ -z "$JAVA_HOME" ]; then
+ if $darwin; then
+
+ if [ -x '/usr/libexec/java_home' ] ; then
+ export JAVA_HOME=`/usr/libexec/java_home`
+
+ elif [ -d "/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home" ]; then
+ export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home"
+ fi
+ else
+ JAVA_PATH=`dirname $(readlink -f $(which javac))`
+ if [ "x$JAVA_PATH" != "x" ]; then
+ export JAVA_HOME=`dirname $JAVA_PATH 2>/dev/null`
+ fi
+ fi
+ if [ -z "$JAVA_HOME" ]; then
+ error_exit "Please set the JAVA_HOME variable in your environment, We need java(x64)! jdk8 or later is better!"
+ fi
+fi
+export SERVER="dubbo-doc-ui-server"
+export JAVA_HOME
+export JAVA="$JAVA_HOME/bin/java"
+export BASE_DIR=`cd $(dirname $0)/..; pwd`
+JAVA_OPT="${JAVA_OPT} -Xms512m -Xmx512m -Xmn256m"
+JAVA_OPT="${JAVA_OPT} -jar ${BASE_DIR}/lib/${SERVER}.jar"
+nohup $JAVA ${JAVA_OPT} dubbo.doc >> ${BASE_DIR}/logs/catlog.out 2>&1 &
+echo "${SERVER} is starting,you can check the ${BASE_DIR}/logs/catlog.out"
\ No newline at end of file
diff --git a/dubbo-api-docs/distribution/pom.xml b/dubbo-api-docs/distribution/pom.xml
new file mode 100644
index 0000000..5bf2aa5
--- /dev/null
+++ b/dubbo-api-docs/distribution/pom.xml
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+ -->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <parent>
+ <groupId>org.apache.dubbo</groupId>
+ <artifactId>dubbo-api-docs</artifactId>
+ <version>2.7.9-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>dubbo-api-docs-distribution</artifactId>
+ <name>dubbo-api-docs-distribution ${project.version}</name>
+ <packaging>pom</packaging>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.dubbo</groupId>
+ <artifactId>dubbo-api-docs-ui-server</artifactId>
+ </dependency>
+ </dependencies>
+ <profiles>
+ <profile>
+ <id>release-dubboDoc</id>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.dubbo</groupId>
+ <artifactId>dubbo-api-docs-ui-server</artifactId>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <version>3.0.0</version>
+ <configuration>
+ <descriptors>
+ <descriptor>release-dubboApiDocs.xml</descriptor>
+ </descriptors>
+ <tarLongFileMode>posix</tarLongFileMode>
+ </configuration>
+ <executions>
+ <execution>
+ <id>make-assembly</id>
+ <phase>install</phase>
+ <goals>
+ <goal>single</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ <finalName>dubboApiDocs</finalName>
+ </build>
+ </profile>
+ </profiles>
+</project>
diff --git a/dubbo-api-docs/distribution/release-dubboApiDocs.xml b/dubbo-api-docs/distribution/release-dubboApiDocs.xml
new file mode 100644
index 0000000..837d40c
--- /dev/null
+++ b/dubbo-api-docs/distribution/release-dubboApiDocs.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+ -->
+<assembly>
+ <id>ui-server-${project.version}</id>
+ <includeBaseDirectory>true</includeBaseDirectory>
+ <formats>
+ <format>dir</format>
+ <format>zip</format>
+ </formats>
+ <fileSets>
+
+ <fileSet>
+ <includes>
+ <include>bin/**</include>
+ </includes>
+ <fileMode>0755</fileMode>
+ </fileSet>
+ </fileSets>
+ <files>
+ <file>
+ <source>LICENSE-BIN</source>
+ <destName>LICENSE</destName>
+ </file>
+ <file>
+ <!--打好的jar包名称和放置目录-->
+ <source>../dubbo-api-docs-ui-server/target/dubbo-api-docs-ui-server.jar</source>
+ <outputDirectory>./lib/</outputDirectory>
+ </file>
+ </files>
+
+ <moduleSets>
+ <moduleSet>
+ <useAllReactorProjects>true</useAllReactorProjects>
+ <includes>
+ <include>org.apache.dubbo:dubbo-api-docs-ui-server</include>
+ </includes>
+ </moduleSet>
+ </moduleSets>
+</assembly>
diff --git a/dubbo-api-docs/dubbo-api-docs-core/src/main/java/org/apache/dubbo/apidocs/core/DubboApiDocsCache.java b/dubbo-api-docs/dubbo-api-docs-core/src/main/java/org/apache/dubbo/apidocs/core/DubboApiDocsCache.java
index e3b5b6d..5f028ed 100644
--- a/dubbo-api-docs/dubbo-api-docs-core/src/main/java/org/apache/dubbo/apidocs/core/DubboApiDocsCache.java
+++ b/dubbo-api-docs/dubbo-api-docs-core/src/main/java/org/apache/dubbo/apidocs/core/DubboApiDocsCache.java
@@ -27,7 +27,8 @@ import java.util.concurrent.ConcurrentHashMap;
/**
* dubbo doc cache.
- * @author klw(213539@qq.com)
+ *
+ * @author klw(213539 @ qq.com)
* 2020/10/29 17:40
*/
public class DubboApiDocsCache {
@@ -50,25 +51,27 @@ public class DubboApiDocsCache {
*/
private static Map<String, String> apiParamsAndRespStrCache = new ConcurrentHashMap<>(16);
- private static String allApiModuleInfo = null;
+ private static List<Map<String, Object>> allApiModuleInfo = null;
+
+ private static String basicApiModuleInfo = null;
- public static void addApiModule(String key, Map<String, Object> moduleCacheItem){
+ public static void addApiModule(String key, Map<String, Object> moduleCacheItem) {
apiModulesCache.put(key, moduleCacheItem);
}
- public static void addApiParamsAndResp(String key, Map<String, Object> apiParamsAndResp){
+ public static void addApiParamsAndResp(String key, Map<String, Object> apiParamsAndResp) {
apiParamsAndRespCache.put(key, apiParamsAndResp);
}
- public static Map<String, Object> getApiModule(String key){
+ public static Map<String, Object> getApiModule(String key) {
return apiModulesCache.get(key);
}
- public static String getApiModuleStr(String key){
+ public static String getApiModuleStr(String key) {
String result = apiModulesStrCache.get(key);
- if(result == null){
+ if (result == null) {
Map<String, Object> temp = apiModulesCache.get(key);
- if(temp != null) {
+ if (temp != null) {
result = JSON.toJSONString(temp, ClassTypeUtil.FAST_JSON_FEATURES);
apiModulesStrCache.put(key, result);
}
@@ -76,15 +79,15 @@ public class DubboApiDocsCache {
return result;
}
- public static Map<String, Object> getApiParamsAndResp(String key){
+ public static Map<String, Object> getApiParamsAndResp(String key) {
return apiParamsAndRespCache.get(key);
}
- public static String getApiParamsAndRespStr(String key){
+ public static String getApiParamsAndRespStr(String key) {
String result = apiParamsAndRespStrCache.get(key);
- if(result == null){
+ if (result == null) {
Map<String, Object> temp = apiParamsAndRespCache.get(key);
- if(temp != null) {
+ if (temp != null) {
result = JSON.toJSONString(temp, ClassTypeUtil.FAST_JSON_FEATURES);
apiParamsAndRespStrCache.put(key, result);
}
@@ -92,13 +95,30 @@ public class DubboApiDocsCache {
return result;
}
- public static String getAllApiModuleInfo(){
- if(allApiModuleInfo == null){
+ public static String getBasicApiModuleInfo() {
+ if (basicApiModuleInfo == null) {
List<Map<String, Object>> tempList = new ArrayList<>(apiModulesCache.size());
apiModulesCache.forEach((k, v) -> {
tempList.add(v);
});
- allApiModuleInfo = JSON.toJSONString(tempList, ClassTypeUtil.FAST_JSON_FEATURES);
+ basicApiModuleInfo = JSON.toJSONString(tempList, ClassTypeUtil.FAST_JSON_FEATURES);
+ }
+ return basicApiModuleInfo;
+ }
+
+ public static List<Map<String, Object>> getAllApiModuleInfo() {
+ if (allApiModuleInfo == null) {
+ allApiModuleInfo = new ArrayList<>(apiModulesCache.size());
+ apiModulesCache.forEach((k, v) -> {
+ List<Map<String, Object>> apiList = (List<Map<String, Object>>) v.get("moduleApiList");
+ if ( null != apiList && !apiList.isEmpty()) {
+ for (Map<String, Object> apiInfo : apiList) {
+ Map<String, Object> apiParams = getApiParamsAndResp(v.get("moduleClassName") + "." + apiInfo.get("apiName"));
+ apiInfo.putAll(apiParams);
+ }
+ }
+ allApiModuleInfo.add(v);
+ });
}
return allApiModuleInfo;
}
diff --git a/dubbo-api-docs/dubbo-api-docs-core/src/main/java/org/apache/dubbo/apidocs/core/providers/DubboDocProviderImpl.java b/dubbo-api-docs/dubbo-api-docs-core/src/main/java/org/apache/dubbo/apidocs/core/providers/DubboDocProviderImpl.java
index d8cfb2b..5179765 100644
--- a/dubbo-api-docs/dubbo-api-docs-core/src/main/java/org/apache/dubbo/apidocs/core/providers/DubboDocProviderImpl.java
+++ b/dubbo-api-docs/dubbo-api-docs-core/src/main/java/org/apache/dubbo/apidocs/core/providers/DubboDocProviderImpl.java
@@ -21,6 +21,9 @@ import org.apache.dubbo.config.annotation.DubboService;
import lombok.extern.slf4j.Slf4j;
+import java.util.List;
+import java.util.Map;
+
/**
* The api implementation of Dubbo doc.
* @author klw(213539@qq.com)
@@ -32,6 +35,11 @@ public class DubboDocProviderImpl implements IDubboDocProvider {
@Override
public String apiModuleList() {
+ return DubboApiDocsCache.getBasicApiModuleInfo();
+ }
+
+ @Override
+ public List<Map<String, Object>> apiModuleListAndApiInfo() {
return DubboApiDocsCache.getAllApiModuleInfo();
}
diff --git a/dubbo-api-docs/dubbo-api-docs-core/src/main/java/org/apache/dubbo/apidocs/core/providers/IDubboDocProvider.java b/dubbo-api-docs/dubbo-api-docs-core/src/main/java/org/apache/dubbo/apidocs/core/providers/IDubboDocProvider.java
index 38899dc..1e7af23 100644
--- a/dubbo-api-docs/dubbo-api-docs-core/src/main/java/org/apache/dubbo/apidocs/core/providers/IDubboDocProvider.java
+++ b/dubbo-api-docs/dubbo-api-docs-core/src/main/java/org/apache/dubbo/apidocs/core/providers/IDubboDocProvider.java
@@ -16,6 +16,9 @@
*/
package org.apache.dubbo.apidocs.core.providers;
+import java.util.List;
+import java.util.Map;
+
/**
* The api used by Dubbo doc, get the parsed API information.
* @author klw(213539@qq.com)
@@ -32,6 +35,14 @@ public interface IDubboDocProvider {
String apiModuleList();
/**
+ * Get all information of all modules , including API parameter information.
+ * 2020/11/9 9:53
+ * @param
+ * @return java.lang.String
+ */
+ List<Map<String, Object>> apiModuleListAndApiInfo();
+
+ /**
* Get module information according to the complete class name of Dubbo provider interface.
* 2020/10/30 16:38
* @param apiInterfaceClassName
diff --git a/dubbo-api-docs/dubbo-api-docs-core/src/main/java/org/apache/dubbo/apidocs/utils/ClassTypeUtil.java b/dubbo-api-docs/dubbo-api-docs-core/src/main/java/org/apache/dubbo/apidocs/utils/ClassTypeUtil.java
index cdb872c..137b908 100644
--- a/dubbo-api-docs/dubbo-api-docs-core/src/main/java/org/apache/dubbo/apidocs/utils/ClassTypeUtil.java
+++ b/dubbo-api-docs/dubbo-api-docs-core/src/main/java/org/apache/dubbo/apidocs/utils/ClassTypeUtil.java
@@ -27,11 +27,13 @@ import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.*;
import java.util.concurrent.CompletableFuture;
+
import org.apache.dubbo.apidocs.annotations.*;
/**
* Java class tool class, special for Dubbo doc.
- * @author klw(213539@qq.com)
+ *
+ * @author klw(213539 @ qq.com)
* 2020/10/29 18:08
*/
@Slf4j
@@ -70,8 +72,9 @@ public class ClassTypeUtil {
/**
* Instantiate class and its fields.
* 2020/10/29 18:08
- * @param genericType genericType
- * @param classType classType
+ *
+ * @param genericType genericType
+ * @param classType classType
* @param processCount processCount
* @return java.lang.Object
*/
@@ -221,6 +224,7 @@ public class ClassTypeUtil {
/**
* Check if it is a basic data type.
* 2020/10/29 18:09
+ *
* @param o
* @return boolean
*/
@@ -242,8 +246,9 @@ public class ClassTypeUtil {
/**
* Get all fields in the class.
* 2020/10/29 18:10
+ *
* @param fieldList fieldList
- * @param classz classz
+ * @param classz classz
* @return java.util.List<java.lang.reflect.Field>
*/
public static List<Field> getAllFields(List<Field> fieldList, Class<?> classz) {
diff --git a/dubbo-api-docs/dubbo-api-docs-examples/examples-api/src/main/java/org/apache/dubbo/apidocs/examples/api/IAsyncDemo.java b/dubbo-api-docs/dubbo-api-docs-examples/examples-api/src/main/java/org/apache/dubbo/apidocs/examples/api/IAsyncDemo.java
index 1d953aa..50426ce 100644
--- a/dubbo-api-docs/dubbo-api-docs-examples/examples-api/src/main/java/org/apache/dubbo/apidocs/examples/api/IAsyncDemo.java
+++ b/dubbo-api-docs/dubbo-api-docs-examples/examples-api/src/main/java/org/apache/dubbo/apidocs/examples/api/IAsyncDemo.java
@@ -18,6 +18,8 @@ package org.apache.dubbo.apidocs.examples.api;
import org.apache.dubbo.apidocs.examples.params.DemoParamBean1;
import org.apache.dubbo.apidocs.examples.params.DemoParamBean2;
+import org.apache.dubbo.apidocs.examples.params.DemoParamBean3;
+import org.apache.dubbo.apidocs.examples.params.DemoParamBean4;
import org.apache.dubbo.apidocs.examples.responses.DemoRespBean1;
import java.util.List;
@@ -32,58 +34,59 @@ import java.util.concurrent.CompletableFuture;
public interface IAsyncDemo {
/**
- * @author klw(213539@qq.com)
- * request and response parameters are beans
- * @Date 2020/2/4 0:01
- * @param: param
- * @return top.klw8.alita.examples.dubbodoc.responses.DemoRespBean1
+ * request and response parameters are beans.
+ * 2020/11/14 22:21
+ * @param param1
+ * @param param2
+ * @return java.util.concurrent.CompletableFuture<org.apache.dubbo.apidocs.examples.responses.DemoRespBean1>
*/
CompletableFuture<DemoRespBean1> demoApi1(DemoParamBean1 param1, DemoParamBean2 param2);
/**
- * @author klw(213539@qq.com)
* Map without generics
*/
CompletableFuture<Map> demoApi6();
/**
- * @author klw(213539@qq.com)
* Map generic with Object
*/
CompletableFuture<Map<Object, Object>> demoApi7();
/**
- * @author klw(213539@qq.com)
* List without generics
*/
CompletableFuture<List> demoApi10();
/**
- * @author klw(213539@qq.com)
* List generic with Object
*/
CompletableFuture<List<Object>> demoApi9();
/**
- * @author klw(213539@qq.com)
* Object
*/
CompletableFuture<Object> demoApi8();
/**
- * @author klw(213539@qq.com)
* Integer
*/
CompletableFuture<Integer> demoApi11();
/**
- * @author klw(213539@qq.com)
* many generics
- * @Date 2020/7/30 17:02
* @param:
* @return java.util.concurrent.CompletableFuture<java.util.List<java.util.List<java.lang.String>>>
*/
CompletableFuture<List<List<String>>> demoApi12();
+ /**
+ * Simple test.
+ * 2020/11/13 10:11
+ * @param param1
+ * @param param2
+ * @return java.util.concurrent.CompletableFuture<org.apache.dubbo.apidocs.examples.params.DemoParamBean3>
+ */
+ CompletableFuture<DemoParamBean3> demoApi13(DemoParamBean3 param1, DemoParamBean4 param2);
+
}
diff --git a/dubbo-api-docs/dubbo-api-docs-examples/examples-api/src/main/java/org/apache/dubbo/apidocs/examples/api/ISyncDemo.java b/dubbo-api-docs/dubbo-api-docs-examples/examples-api/src/main/java/org/apache/dubbo/apidocs/examples/api/ISyncDemo.java
index f842140..59064a0 100644
--- a/dubbo-api-docs/dubbo-api-docs-examples/examples-api/src/main/java/org/apache/dubbo/apidocs/examples/api/ISyncDemo.java
+++ b/dubbo-api-docs/dubbo-api-docs-examples/examples-api/src/main/java/org/apache/dubbo/apidocs/examples/api/ISyncDemo.java
@@ -18,6 +18,8 @@ package org.apache.dubbo.apidocs.examples.api;
import org.apache.dubbo.apidocs.examples.params.DemoParamBean1;
import org.apache.dubbo.apidocs.examples.params.DemoParamBean2;
+import org.apache.dubbo.apidocs.examples.params.DemoParamBean3;
+import org.apache.dubbo.apidocs.examples.params.DemoParamBean4;
import org.apache.dubbo.apidocs.examples.responses.BaseResponse;
import org.apache.dubbo.apidocs.examples.responses.DemoRespBean1;
@@ -32,10 +34,11 @@ import java.util.Map;
public interface ISyncDemo {
/**
- * request and response parameters are beans
- * @Date 2020/2/4 0:01
- * @param: param
- * @return top.klw8.alita.examples.dubbodoc.responses.DemoRespBean1
+ * request and response parameters are beans.
+ * 2020/11/14 22:21
+ * @param param1
+ * @param param2
+ * @return org.apache.dubbo.apidocs.examples.responses.DemoRespBean1
*/
DemoRespBean1 demoApi1(DemoParamBean1 param1, DemoParamBean2 param2);
@@ -94,4 +97,13 @@ public interface ISyncDemo {
*/
Object demoApi8();
+ /**
+ * Simple test.
+ * 2020/11/13 10:11
+ * @param param1
+ * @param param2
+ * @return org.apache.dubbo.apidocs.examples.params.DemoParamBean3
+ */
+ DemoParamBean3 demoApi13(DemoParamBean3 param1, DemoParamBean4 param2);
+
}
diff --git a/dubbo-api-docs/dubbo-api-docs-examples/examples-api/src/main/java/org/apache/dubbo/apidocs/examples/params/DemoParamBean3.java b/dubbo-api-docs/dubbo-api-docs-examples/examples-api/src/main/java/org/apache/dubbo/apidocs/examples/params/DemoParamBean3.java
new file mode 100644
index 0000000..9139197
--- /dev/null
+++ b/dubbo-api-docs/dubbo-api-docs-examples/examples-api/src/main/java/org/apache/dubbo/apidocs/examples/params/DemoParamBean3.java
@@ -0,0 +1,43 @@
+/*
+ * 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.
+ */
+package org.apache.dubbo.apidocs.examples.params;
+
+import org.apache.dubbo.apidocs.annotations.RequestParam;
+import org.apache.dubbo.apidocs.annotations.ResponseProperty;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * DemoParamBean3.
+ *
+ * @author klw(213539 @ qq.com)
+ * @date 2020/11/13 9:56
+ */
+@Getter
+@Setter
+public class DemoParamBean3 {
+
+ @RequestParam("a string")
+ @ResponseProperty("result a string")
+ private String string;
+
+ @RequestParam("a DemoParamBean4")
+ @ResponseProperty("result a bean4")
+ private DemoParamBean4 bean4;
+
+}
diff --git a/dubbo-api-docs/dubbo-api-docs-examples/examples-api/src/main/java/org/apache/dubbo/apidocs/examples/params/DemoParamBean4.java b/dubbo-api-docs/dubbo-api-docs-examples/examples-api/src/main/java/org/apache/dubbo/apidocs/examples/params/DemoParamBean4.java
new file mode 100644
index 0000000..6b5f716
--- /dev/null
+++ b/dubbo-api-docs/dubbo-api-docs-examples/examples-api/src/main/java/org/apache/dubbo/apidocs/examples/params/DemoParamBean4.java
@@ -0,0 +1,39 @@
+/*
+ * 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.
+ */
+package org.apache.dubbo.apidocs.examples.params;
+
+import org.apache.dubbo.apidocs.annotations.RequestParam;
+import org.apache.dubbo.apidocs.annotations.ResponseProperty;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * DemoParamBean4.
+ *
+ * @author klw(213539 @ qq.com)
+ * @date 2020/11/13 9:56
+ */
+@Getter
+@Setter
+public class DemoParamBean4 {
+
+ @RequestParam("a string")
+ @ResponseProperty("result a string")
+ private String bean4Str;
+
+}
diff --git a/dubbo-api-docs/dubbo-api-docs-examples/examples-provider/src/main/java/org/apache/dubbo/apidocs/examples/api/impl/AsyncDemoImpl.java b/dubbo-api-docs/dubbo-api-docs-examples/examples-provider/src/main/java/org/apache/dubbo/apidocs/examples/api/impl/AsyncDemoImpl.java
index 9706290..bde2bf8 100644
--- a/dubbo-api-docs/dubbo-api-docs-examples/examples-provider/src/main/java/org/apache/dubbo/apidocs/examples/api/impl/AsyncDemoImpl.java
+++ b/dubbo-api-docs/dubbo-api-docs-examples/examples-provider/src/main/java/org/apache/dubbo/apidocs/examples/api/impl/AsyncDemoImpl.java
@@ -21,6 +21,8 @@ import org.apache.dubbo.apidocs.annotations.ApiModule;
import org.apache.dubbo.apidocs.examples.api.IAsyncDemo;
import org.apache.dubbo.apidocs.examples.params.DemoParamBean1;
import org.apache.dubbo.apidocs.examples.params.DemoParamBean2;
+import org.apache.dubbo.apidocs.examples.params.DemoParamBean3;
+import org.apache.dubbo.apidocs.examples.params.DemoParamBean4;
import org.apache.dubbo.apidocs.examples.responses.DemoRespBean1;
import org.apache.dubbo.config.annotation.DubboService;
@@ -34,7 +36,8 @@ import java.util.concurrent.ScheduledThreadPoolExecutor;
/**
* Asynchronous demo implementation.
- * @author klw(213539@qq.com)
+ *
+ * @author klw(213539 @ qq.com)
* 2020/10/30 14:54
*/
@DubboService(async = true)
@@ -56,44 +59,52 @@ public class AsyncDemoImpl implements IAsyncDemo {
}
@Override
- @ApiDoc(value = "Map without generics", responseClassDescription="Map without generics")
+ @ApiDoc(value = "Map without generics", responseClassDescription = "Map without generics")
public CompletableFuture<Map> demoApi6() {
return null;
}
@Override
- @ApiDoc(value = "Map generic with Object", responseClassDescription="Map generic with Object")
+ @ApiDoc(value = "Map generic with Object", responseClassDescription = "Map generic with Object")
public CompletableFuture<Map<Object, Object>> demoApi7() {
return null;
}
@Override
- @ApiDoc(value = "List without generics", responseClassDescription="List without generics")
+ @ApiDoc(value = "List without generics", responseClassDescription = "List without generics")
public CompletableFuture<List> demoApi10() {
return null;
}
@Override
- @ApiDoc(value = "List generic with Object", responseClassDescription="List generic with Object")
+ @ApiDoc(value = "List generic with Object", responseClassDescription = "List generic with Object")
public CompletableFuture<List<Object>> demoApi9() {
return null;
}
@Override
- @ApiDoc(value = "Object", responseClassDescription="Object")
+ @ApiDoc(value = "Object", responseClassDescription = "Object")
public CompletableFuture<Object> demoApi8() {
return null;
}
@Override
- @ApiDoc(value = "Integer", responseClassDescription="Integer")
+ @ApiDoc(value = "Integer", responseClassDescription = "Integer")
public CompletableFuture<Integer> demoApi11() {
return null;
}
@Override
- @ApiDoc(value = "many generics", responseClassDescription="many generics")
- public CompletableFuture<List<List<String>>> demoApi12(){
+ @ApiDoc(value = "many generics", responseClassDescription = "many generics")
+ public CompletableFuture<List<List<String>>> demoApi12() {
return null;
}
+
+ @Override
+ @ApiDoc(value = "Simple test", responseClassDescription = "Simple test")
+ public CompletableFuture<DemoParamBean3> demoApi13(DemoParamBean3 param1, DemoParamBean4 param2) {
+ DemoParamBean3 result = new DemoParamBean3();
+ result.setString("demoApi13 result");
+ return CompletableFuture.supplyAsync(() -> result, EXECUTOR);
+ }
}
diff --git a/dubbo-api-docs/dubbo-api-docs-examples/examples-provider/src/main/java/org/apache/dubbo/apidocs/examples/api/impl/SyncDemoImpl.java b/dubbo-api-docs/dubbo-api-docs-examples/examples-provider/src/main/java/org/apache/dubbo/apidocs/examples/api/impl/SyncDemoImpl.java
index 243a2e3..07f13b5 100644
--- a/dubbo-api-docs/dubbo-api-docs-examples/examples-provider/src/main/java/org/apache/dubbo/apidocs/examples/api/impl/SyncDemoImpl.java
+++ b/dubbo-api-docs/dubbo-api-docs-examples/examples-provider/src/main/java/org/apache/dubbo/apidocs/examples/api/impl/SyncDemoImpl.java
@@ -24,6 +24,8 @@ import org.apache.dubbo.apidocs.annotations.RequestParam;
import org.apache.dubbo.apidocs.examples.api.ISyncDemo;
import org.apache.dubbo.apidocs.examples.params.DemoParamBean1;
import org.apache.dubbo.apidocs.examples.params.DemoParamBean2;
+import org.apache.dubbo.apidocs.examples.params.DemoParamBean3;
+import org.apache.dubbo.apidocs.examples.params.DemoParamBean4;
import org.apache.dubbo.apidocs.examples.responses.BaseResponse;
import org.apache.dubbo.apidocs.examples.responses.DemoRespBean1;
import org.apache.dubbo.config.annotation.DubboService;
@@ -113,4 +115,12 @@ public class SyncDemoImpl implements ISyncDemo {
public Object demoApi8() {
return null;
}
+
+ @Override
+ @ApiDoc(value = "Simple test", responseClassDescription = "Simple test")
+ public DemoParamBean3 demoApi13(DemoParamBean3 param1, DemoParamBean4 param2) {
+ DemoParamBean3 result = new DemoParamBean3();
+ result.setString("demoApi13 result");
+ return result;
+ }
}
diff --git a/dubbo-api-docs/dubbo-api-docs-examples/examples-provider/src/main/resources/application.yml b/dubbo-api-docs/dubbo-api-docs-examples/examples-provider/src/main/resources/application.yml
index 87423b4..ae4c2fa 100644
--- a/dubbo-api-docs/dubbo-api-docs-examples/examples-provider/src/main/resources/application.yml
+++ b/dubbo-api-docs/dubbo-api-docs-examples/examples-provider/src/main/resources/application.yml
@@ -1,6 +1,6 @@
spring:
application:
- name: dubbo-doc-example-provider
+ name: dubbo-api-docs-example-provider
profiles:
active: dev
dubbo:
@@ -12,4 +12,6 @@ dubbo:
port: 20881
name: dubbo
application:
- name: dubbo-doc-example-provider
\ No newline at end of file
+ name: dubbo-api-docs-example-provider
+ metadata-report:
+ address: nacos://127.0.0.1:8848
\ No newline at end of file
diff --git a/dubbo-api-docs/dubbo-api-docs-ui-server/pom.xml b/dubbo-api-docs/dubbo-api-docs-ui-server/pom.xml
new file mode 100644
index 0000000..9044a7d
--- /dev/null
+++ b/dubbo-api-docs/dubbo-api-docs-ui-server/pom.xml
@@ -0,0 +1,291 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+ -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.dubbo</groupId>
+ <artifactId>dubbo-api-docs-ui-server</artifactId>
+ <version>2.7.9-SNAPSHOT</version>
+ <packaging>jar</packaging>
+ <name>dubbo-api-docs-ui-server</name>
+ <description>Web ui, responsible for displaying doc and providing testing function</description>
+
+ <parent>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-parent</artifactId>
+ <version>2.3.4.RELEASE</version>
+ <relativePath />
+ </parent>
+
+ <properties>
+ </properties>
+
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.dubbo</groupId>
+ <artifactId>dubbo-api-docs</artifactId>
+ <version>2.7.9-SNAPSHOT</version>
+ <type>pom</type>
+ <scope>import</scope>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+
+ <dependencies>
+
+ <!--
+ [Begin] Solve the spring fox problem temporarily
+ Spring fox relies on 1.2.0 but doesn't work. It works under 2.0.0
+ <dependency>
+ <groupId>org.springframework.plugin</groupId>
+ <artifactId>spring-plugin-core</artifactId>
+ <version>2.0.0.RELEASE</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.plugin</groupId>
+ <artifactId>spring-plugin-metadata</artifactId>
+ <version>2.0.0.RELEASE</version>
+ </dependency>
+ [End] Solve the spring fox problem temporarily -->
+
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-webflux</artifactId>
+ <exclusions>
+ <exclusion>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-logging</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-1.2-api</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-slf4j-impl</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>jcl-over-slf4j</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.lmax</groupId>
+ <artifactId>disruptor</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.dubbo</groupId>
+ <artifactId>dubbo</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.dubbo</groupId>
+ <artifactId>dubbo-registry-nacos</artifactId>
+ <exclusions>
+ <exclusion>
+ <artifactId>log4j</artifactId>
+ <groupId>log4j</groupId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.apache.dubbo</groupId>
+ <artifactId>dubbo-remoting-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <artifactId>dubbo-common</artifactId>
+ <groupId>org.apache.dubbo</groupId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.dubbo</groupId>
+ <artifactId>dubbo-registry-consul</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.dubbo</groupId>
+ <artifactId>dubbo-registry-default</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.dubbo</groupId>
+ <artifactId>dubbo-registry-etcd3</artifactId>
+ <exclusions>
+ <exclusion>
+ <artifactId>log4j</artifactId>
+ <groupId>log4j</groupId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.apache.dubbo</groupId>
+ <artifactId>dubbo-remoting-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <artifactId>dubbo-common</artifactId>
+ <groupId>org.apache.dubbo</groupId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.dubbo</groupId>
+ <artifactId>dubbo-registry-multicast</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.dubbo</groupId>
+ <artifactId>dubbo-registry-multiple</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.dubbo</groupId>
+ <artifactId>dubbo-registry-redis</artifactId>
+ <exclusions>
+ <exclusion>
+ <artifactId>log4j</artifactId>
+ <groupId>log4j</groupId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.apache.dubbo</groupId>
+ <artifactId>dubbo-remoting-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <artifactId>dubbo-common</artifactId>
+ <groupId>org.apache.dubbo</groupId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.dubbo</groupId>
+ <artifactId>dubbo-registry-sofa</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.dubbo</groupId>
+ <artifactId>dubbo-registry-zookeeper</artifactId>
+ <exclusions>
+ <exclusion>
+ <artifactId>slf4j-log4j12</artifactId>
+ <groupId>org.slf4j</groupId>
+ </exclusion>
+ <exclusion>
+ <artifactId>log4j</artifactId>
+ <groupId>log4j</groupId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.apache.dubbo</groupId>
+ <artifactId>dubbo-remoting-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <artifactId>dubbo-common</artifactId>
+ <groupId>org.apache.dubbo</groupId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>com.alibaba.nacos</groupId>
+ <artifactId>nacos-api</artifactId>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>com.alibaba.nacos</groupId>
+ <artifactId>nacos-client</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>io.springfox</groupId>
+ <artifactId>springfox-boot-starter</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.projectlombok</groupId>
+ <artifactId>lombok</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-beanutils</groupId>
+ <artifactId>commons-beanutils</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-collections4</artifactId>
+ </dependency>
+
+ </dependencies>
+
+ <profiles>
+ <profile>
+ <id>release-dubboDoc</id>
+ <build>
+ <finalName>dubbo-doc-ui-server</finalName>
+ <plugins>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifest>
+ <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
+ <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
+ </manifest>
+ </archive>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-maven-plugin</artifactId>
+ <configuration>
+ <mainClass>org.apache.dubbo.apidocs.DubboApiDocsUiServerApplication</mainClass>
+ <layout>ZIP</layout>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>repackage</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <excludes>
+ <exclude>**/application.yml</exclude>
+ <exclude>**/log4j2.xml</exclude>
+ <exclude>**/rebel.xml</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+
+</project>
\ No newline at end of file
diff --git a/dubbo-api-docs/dubbo-api-docs-core/src/main/java/org/apache/dubbo/apidocs/core/providers/DubboDocProviderImpl.java b/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/java/org/apache/dubbo/apidocs/DubboApiDocsUiServerApplication.java
similarity index 51%
copy from dubbo-api-docs/dubbo-api-docs-core/src/main/java/org/apache/dubbo/apidocs/core/providers/DubboDocProviderImpl.java
copy to dubbo-api-docs/dubbo-api-docs-ui-server/src/main/java/org/apache/dubbo/apidocs/DubboApiDocsUiServerApplication.java
index d8cfb2b..a8a7c65 100644
--- a/dubbo-api-docs/dubbo-api-docs-core/src/main/java/org/apache/dubbo/apidocs/core/providers/DubboDocProviderImpl.java
+++ b/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/java/org/apache/dubbo/apidocs/DubboApiDocsUiServerApplication.java
@@ -14,34 +14,24 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.dubbo.apidocs.core.providers;
+package org.apache.dubbo.apidocs;
-import org.apache.dubbo.apidocs.core.DubboApiDocsCache;
-import org.apache.dubbo.config.annotation.DubboService;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.ConfigurableApplicationContext;
-import lombok.extern.slf4j.Slf4j;
/**
- * The api implementation of Dubbo doc.
+ * Start Dubbo doc ui server.
* @author klw(213539@qq.com)
- * 2020/10/29 17:38
+ * 2020/11/14 20:41
*/
-@Slf4j
-@DubboService
-public class DubboDocProviderImpl implements IDubboDocProvider {
+@SpringBootApplication
+public class DubboApiDocsUiServerApplication {
- @Override
- public String apiModuleList() {
- return DubboApiDocsCache.getAllApiModuleInfo();
- }
- @Override
- public String apiModuleInfo(String apiInterfaceClassName) {
- return DubboApiDocsCache.getApiModuleStr(apiInterfaceClassName);
+ public static void main(String[] args) {
+ ConfigurableApplicationContext ctx = SpringApplication.run(DubboApiDocsUiServerApplication.class);
}
- @Override
- public String apiParamsResponseInfo(String apiInterfaceClassNameMethodName) {
- return DubboApiDocsCache.getApiParamsAndRespStr(apiInterfaceClassNameMethodName);
- }
}
diff --git a/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/java/org/apache/dubbo/apidocs/cfg/SwaggerConfig.java b/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/java/org/apache/dubbo/apidocs/cfg/SwaggerConfig.java
new file mode 100644
index 0000000..5a1dbe9
--- /dev/null
+++ b/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/java/org/apache/dubbo/apidocs/cfg/SwaggerConfig.java
@@ -0,0 +1,62 @@
+/*
+ * 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.
+ */
+package org.apache.dubbo.apidocs.cfg;
+
+
+import io.swagger.annotations.Api;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.service.*;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+import springfox.documentation.swagger2.annotations.EnableSwagger2WebFlux;
+
+/**
+ * swagger config.
+ * @author klw(213539@qq.com)
+ * 2020/11/14 20:42
+ */
+@Configuration
+@EnableSwagger2
+public class SwaggerConfig {
+
+ public static final String VERSION = "1.0.0";
+
+ protected ApiInfo apiInfo() {
+ return new ApiInfoBuilder().title("Dubbo API docs").description(" ")
+ .license("Apache 2.0")
+ .licenseUrl("http://www.apache.org/licenses/LICENSE-2.0.html")
+ .termsOfServiceUrl("").version(VERSION)
+ .build();
+ }
+
+ @Bean
+ public Docket customImplementationDevHelper() {
+ return new Docket(DocumentationType.SWAGGER_2)
+ .groupName("【Dubbo API docs】")
+ .select()
+ .paths(PathSelectors.ant("/**"))
+ .apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
+ .build()
+ .apiInfo(apiInfo());
+ }
+
+}
diff --git a/dubbo-api-docs/dubbo-api-docs-core/src/main/java/org/apache/dubbo/apidocs/core/providers/DubboDocProviderImpl.java b/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/java/org/apache/dubbo/apidocs/cfg/WebConfig.java
similarity index 52%
copy from dubbo-api-docs/dubbo-api-docs-core/src/main/java/org/apache/dubbo/apidocs/core/providers/DubboDocProviderImpl.java
copy to dubbo-api-docs/dubbo-api-docs-ui-server/src/main/java/org/apache/dubbo/apidocs/cfg/WebConfig.java
index d8cfb2b..87b4062 100644
--- a/dubbo-api-docs/dubbo-api-docs-core/src/main/java/org/apache/dubbo/apidocs/core/providers/DubboDocProviderImpl.java
+++ b/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/java/org/apache/dubbo/apidocs/cfg/WebConfig.java
@@ -14,34 +14,29 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.dubbo.apidocs.core.providers;
+package org.apache.dubbo.apidocs.cfg;
-import org.apache.dubbo.apidocs.core.DubboApiDocsCache;
-import org.apache.dubbo.config.annotation.DubboService;
-
-import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+import org.springframework.web.server.ServerWebExchange;
+import org.springframework.web.server.WebFilter;
+import org.springframework.web.server.WebFilterChain;
+import reactor.core.publisher.Mono;
/**
- * The api implementation of Dubbo doc.
+ * web config.
* @author klw(213539@qq.com)
- * 2020/10/29 17:38
+ * 2020/11/14 20:44
*/
-@Slf4j
-@DubboService
-public class DubboDocProviderImpl implements IDubboDocProvider {
+@Component
+public class WebConfig implements WebFilter {
@Override
- public String apiModuleList() {
- return DubboApiDocsCache.getAllApiModuleInfo();
- }
+ public Mono<Void> filter(ServerWebExchange exchange, WebFilterChain chain) {
+ if (exchange.getRequest().getURI().getPath().equals("/")) {
+ return chain.filter(exchange.mutate().request(exchange.getRequest().mutate().path("/index.html").build()).build());
+ }
- @Override
- public String apiModuleInfo(String apiInterfaceClassName) {
- return DubboApiDocsCache.getApiModuleStr(apiInterfaceClassName);
+ return chain.filter(exchange);
}
- @Override
- public String apiParamsResponseInfo(String apiInterfaceClassNameMethodName) {
- return DubboApiDocsCache.getApiParamsAndRespStr(apiInterfaceClassNameMethodName);
- }
}
diff --git a/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/java/org/apache/dubbo/apidocs/controller/DubboApiDocsController.java b/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/java/org/apache/dubbo/apidocs/controller/DubboApiDocsController.java
new file mode 100644
index 0000000..a4f5da1
--- /dev/null
+++ b/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/java/org/apache/dubbo/apidocs/controller/DubboApiDocsController.java
@@ -0,0 +1,191 @@
+/*
+ * 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.
+ */
+package org.apache.dubbo.apidocs.controller;
+
+import org.apache.dubbo.apidocs.controller.vo.ApiInfoRequest;
+import org.apache.dubbo.apidocs.controller.vo.CallDubboServiceRequest;
+import org.apache.dubbo.apidocs.controller.vo.CallDubboServiceRequestInterfacePrarm;
+import org.apache.dubbo.apidocs.editor.CustomDateEditor;
+import org.apache.dubbo.apidocs.editor.CustomLocalDateEditor;
+import org.apache.dubbo.apidocs.editor.CustomLocalDateTimeEditor;
+import org.apache.dubbo.apidocs.utils.DubboGenericUtil;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.serializer.SimplePropertyPreFilter;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.beans.propertyeditors.StringTrimmerEditor;
+import org.springframework.web.bind.WebDataBinder;
+import org.springframework.web.bind.annotation.*;
+import reactor.core.publisher.Mono;
+
+import javax.annotation.PostConstruct;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.*;
+import java.util.concurrent.CompletableFuture;
+
+/**
+ * dubbo doc ui server api.
+ * @author klw(213539@qq.com)
+ * 2020/11/14 20:23
+ */
+@Api(tags = {"alita-restful-API--demoAPI"})
+@RestController
+@Slf4j
+@RequestMapping("/api")
+public class DubboApiDocsController {
+
+ private static final SimplePropertyPreFilter CLASS_NAME_PRE_FILTER = new SimplePropertyPreFilter(HashMap.class);
+ static {
+ // Remove the "class" attribute from the returned result
+ CLASS_NAME_PRE_FILTER.getExcludes().add("class");
+ }
+
+ /**
+ * retries for dubbo provider.
+ */
+ @Value("${dubbo.consumer.retries:2}")
+ private int retries;
+
+ /**
+ * timeout.
+ */
+ @Value("${dubbo.consumer.timeout:1000}")
+ private int timeout;
+
+ @InitBinder
+ public void initBinder(WebDataBinder binder) {
+ binder.registerCustomEditor(String.class, new StringTrimmerEditor(true));
+ binder.registerCustomEditor(Date.class, new CustomDateEditor());
+ binder.registerCustomEditor(LocalDate.class, new CustomLocalDateEditor());
+ binder.registerCustomEditor(LocalDateTime.class, new CustomLocalDateTimeEditor());
+ }
+
+ /**
+ * Set timeout and retries for {@link DubboGenericUtil}.
+ * 2020/11/14 20:26
+ */
+ @PostConstruct
+ public void setRetriesAndTimeout(){
+ DubboGenericUtil.setRetriesAndTimeout(retries, timeout);
+ }
+
+ @ApiOperation(value = "request dubbo api", notes = "request dubbo api", httpMethod = "POST", produces = "application/json")
+ @PostMapping("/requestDubbo")
+ public Mono<String> callDubboService(CallDubboServiceRequest dubboCfg, @RequestBody List<CallDubboServiceRequestInterfacePrarm> methodPrarms){
+ String[] prarmTypes = null;
+ Object[] prarmValues = null;
+ if(CollectionUtils.isNotEmpty(methodPrarms)){
+ prarmTypes = new String[methodPrarms.size()];
+ prarmValues = new Object[methodPrarms.size()];
+ for(int i = 0; i < methodPrarms.size(); i++){
+ CallDubboServiceRequestInterfacePrarm prarm = methodPrarms.get(i);
+ prarmTypes[i] = prarm.getPrarmType();
+ Object prarmValue = prarm.getPrarmValue();
+ if(isBaseType(prarm.getPrarmType()) && null != prarmValue){
+ if(prarmValue instanceof Map){
+ Map<?, ?> tempMap = (Map<?, ?>) prarmValue;
+ if(!tempMap.isEmpty()) {
+ this.emptyString2Null(tempMap);
+ prarmValues[i] = tempMap.values().stream().findFirst().orElse(null);
+ }
+ } else {
+ prarmValues[i] = emptyString2Null(prarmValue);
+ }
+ } else {
+ this.emptyString2Null(prarmValue);
+ prarmValues[i] = prarmValue;
+ }
+ }
+ }
+ if (null == prarmTypes) {
+ prarmTypes = new String[0];
+ }
+ if (null == prarmValues) {
+ prarmValues = new Object[0];
+ }
+ CompletableFuture<Object> future = DubboGenericUtil.invoke(dubboCfg.getRegistryCenterUrl(), dubboCfg.getInterfaceClassName(),
+ dubboCfg.getMethodName(), dubboCfg.isAsync(), prarmTypes, prarmValues);
+ return Mono.fromFuture(future).map( o -> JSON.toJSONString(o, CLASS_NAME_PRE_FILTER));
+ }
+
+ private Object emptyString2Null(Object prarmValue){
+ if(null != prarmValue) {
+ if (prarmValue instanceof String && StringUtils.isBlank((String) prarmValue)) {
+ return null;
+ } else if (prarmValue instanceof Map) {
+ Map<String, Object> tempMap = (Map<String, Object>) prarmValue;
+ tempMap.forEach((k, v) -> {
+ if (v != null && v instanceof String && StringUtils.isBlank((String) v)) {
+ tempMap.put(k, null);
+ } else {
+ this.emptyString2Null(v);
+ }
+ });
+ }
+ }
+ return prarmValue;
+ }
+
+ @ApiOperation(value = "Get basic information of all modules, excluding API parameter information", notes = "Get basic information of all modules, excluding API parameter information", httpMethod = "GET", produces = "application/json")
+ @GetMapping("/apiModuleList")
+ public Mono<String> apiModuleList(ApiInfoRequest apiInfoRequest){
+ CallDubboServiceRequest req = new CallDubboServiceRequest();
+ req.setRegistryCenterUrl("dubbo://" + apiInfoRequest.getDubboIp() + ":" + apiInfoRequest.getDubboPort());
+ req.setInterfaceClassName("org.apache.dubbo.apidocs.core.providers.IDubboDocProvider");
+ req.setMethodName("apiModuleList");
+ req.setAsync(false);
+ return callDubboService(req, null);
+ }
+
+ @ApiOperation(value = "Get the parameter information of the specified API", notes = "Get the parameter information of the specified API", httpMethod = "GET", produces = "application/json")
+ @GetMapping("/apiParamsResp")
+ public Mono<String> apiParamsResp(ApiInfoRequest apiInfoRequest){
+ CallDubboServiceRequest req = new CallDubboServiceRequest();
+ req.setRegistryCenterUrl("dubbo://" + apiInfoRequest.getDubboIp() + ":" + apiInfoRequest.getDubboPort());
+ req.setInterfaceClassName("org.apache.dubbo.apidocs.core.providers.IDubboDocProvider");
+ req.setMethodName("apiParamsResponseInfo");
+ req.setAsync(false);
+
+ List<CallDubboServiceRequestInterfacePrarm> methodPrarms = new ArrayList<>(1);
+ CallDubboServiceRequestInterfacePrarm prarm = new CallDubboServiceRequestInterfacePrarm();
+ prarm.setPrarmType(String.class.getName());
+ prarm.setPrarmValue(apiInfoRequest.getApiName());
+ methodPrarms.add(prarm);
+ return callDubboService(req, methodPrarms);
+ }
+
+ private static boolean isBaseType(String typeStr) {
+ if ("java.lang.Integer".equals(typeStr) ||
+ "java.lang.Byte".equals(typeStr) ||
+ "java.lang.Long".equals(typeStr) ||
+ "java.lang.Double".equals(typeStr) ||
+ "java.lang.Float".equals(typeStr) ||
+ "java.lang.Character".equals(typeStr) ||
+ "java.lang.Short".equals(typeStr) ||
+ "java.lang.Boolean".equals(typeStr) ||
+ "java.lang.String".equals(typeStr)) {
+ return true;
+ }
+ return false;
+ }
+}
diff --git a/dubbo-api-docs/dubbo-api-docs-core/src/main/java/org/apache/dubbo/apidocs/core/providers/DubboDocProviderImpl.java b/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/java/org/apache/dubbo/apidocs/controller/vo/ApiInfoRequest.java
similarity index 51%
copy from dubbo-api-docs/dubbo-api-docs-core/src/main/java/org/apache/dubbo/apidocs/core/providers/DubboDocProviderImpl.java
copy to dubbo-api-docs/dubbo-api-docs-ui-server/src/main/java/org/apache/dubbo/apidocs/controller/vo/ApiInfoRequest.java
index d8cfb2b..5896de5 100644
--- a/dubbo-api-docs/dubbo-api-docs-core/src/main/java/org/apache/dubbo/apidocs/core/providers/DubboDocProviderImpl.java
+++ b/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/java/org/apache/dubbo/apidocs/controller/vo/ApiInfoRequest.java
@@ -14,34 +14,28 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.dubbo.apidocs.core.providers;
+package org.apache.dubbo.apidocs.controller.vo;
-import org.apache.dubbo.apidocs.core.DubboApiDocsCache;
-import org.apache.dubbo.config.annotation.DubboService;
-
-import lombok.extern.slf4j.Slf4j;
+import io.swagger.annotations.ApiParam;
+import lombok.Getter;
+import lombok.Setter;
/**
- * The api implementation of Dubbo doc.
+ * Obtain the API module list and the request parameters of the API parameter information interface.
* @author klw(213539@qq.com)
- * 2020/10/29 17:38
+ * 2020/11/14 20:45
*/
-@Slf4j
-@DubboService
-public class DubboDocProviderImpl implements IDubboDocProvider {
+@Getter
+@Setter
+public class ApiInfoRequest {
+
+ @ApiParam(value = "IP of Dubbo provider", required = true)
+ private String dubboIp;
- @Override
- public String apiModuleList() {
- return DubboApiDocsCache.getAllApiModuleInfo();
- }
+ @ApiParam(value = "Port of Dubbo provider", required = true)
+ private String dubboPort;
- @Override
- public String apiModuleInfo(String apiInterfaceClassName) {
- return DubboApiDocsCache.getApiModuleStr(apiInterfaceClassName);
- }
+ @ApiParam(value = "API full name (interface class full name. Method name), which must be passed when getting API parameter information")
+ private String apiName;
- @Override
- public String apiParamsResponseInfo(String apiInterfaceClassNameMethodName) {
- return DubboApiDocsCache.getApiParamsAndRespStr(apiInterfaceClassNameMethodName);
- }
}
diff --git a/dubbo-api-docs/dubbo-api-docs-core/src/main/java/org/apache/dubbo/apidocs/core/providers/DubboDocProviderImpl.java b/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/java/org/apache/dubbo/apidocs/controller/vo/CallDubboServiceRequest.java
similarity index 51%
copy from dubbo-api-docs/dubbo-api-docs-core/src/main/java/org/apache/dubbo/apidocs/core/providers/DubboDocProviderImpl.java
copy to dubbo-api-docs/dubbo-api-docs-ui-server/src/main/java/org/apache/dubbo/apidocs/controller/vo/CallDubboServiceRequest.java
index d8cfb2b..f81653c 100644
--- a/dubbo-api-docs/dubbo-api-docs-core/src/main/java/org/apache/dubbo/apidocs/core/providers/DubboDocProviderImpl.java
+++ b/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/java/org/apache/dubbo/apidocs/controller/vo/CallDubboServiceRequest.java
@@ -14,34 +14,32 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.dubbo.apidocs.core.providers;
+package org.apache.dubbo.apidocs.controller.vo;
-import org.apache.dubbo.apidocs.core.DubboApiDocsCache;
-import org.apache.dubbo.config.annotation.DubboService;
+import io.swagger.annotations.ApiParam;
+import lombok.Getter;
+import lombok.Setter;
-import lombok.extern.slf4j.Slf4j;
/**
- * The api implementation of Dubbo doc.
+ * Call Dubbo api to request parameters.
* @author klw(213539@qq.com)
- * 2020/10/29 17:38
+ * 2020/11/14 20:46
*/
-@Slf4j
-@DubboService
-public class DubboDocProviderImpl implements IDubboDocProvider {
-
- @Override
- public String apiModuleList() {
- return DubboApiDocsCache.getAllApiModuleInfo();
- }
-
- @Override
- public String apiModuleInfo(String apiInterfaceClassName) {
- return DubboApiDocsCache.getApiModuleStr(apiInterfaceClassName);
- }
-
- @Override
- public String apiParamsResponseInfo(String apiInterfaceClassNameMethodName) {
- return DubboApiDocsCache.getApiParamsAndRespStr(apiInterfaceClassNameMethodName);
- }
+@Getter
+@Setter
+public class CallDubboServiceRequest {
+
+ @ApiParam(value = "Address of registration center, such as: nacos://127.0.0.1:8848", required = true)
+ private String registryCenterUrl;
+
+ @ApiParam(value = "Dubbo interface full package path", required = true)
+ private String interfaceClassName;
+
+ @ApiParam(value = "Method name of the service", required = true)
+ private String methodName;
+
+ @ApiParam(value = "Whether to call asynchronously, false by default")
+ private boolean async = false;
+
}
diff --git a/dubbo-api-docs/dubbo-api-docs-core/src/main/java/org/apache/dubbo/apidocs/core/providers/DubboDocProviderImpl.java b/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/java/org/apache/dubbo/apidocs/controller/vo/CallDubboServiceRequestInterfacePrarm.java
similarity index 51%
copy from dubbo-api-docs/dubbo-api-docs-core/src/main/java/org/apache/dubbo/apidocs/core/providers/DubboDocProviderImpl.java
copy to dubbo-api-docs/dubbo-api-docs-ui-server/src/main/java/org/apache/dubbo/apidocs/controller/vo/CallDubboServiceRequestInterfacePrarm.java
index d8cfb2b..3cf6d0f 100644
--- a/dubbo-api-docs/dubbo-api-docs-core/src/main/java/org/apache/dubbo/apidocs/core/providers/DubboDocProviderImpl.java
+++ b/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/java/org/apache/dubbo/apidocs/controller/vo/CallDubboServiceRequestInterfacePrarm.java
@@ -14,34 +14,25 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.dubbo.apidocs.core.providers;
+package org.apache.dubbo.apidocs.controller.vo;
-import org.apache.dubbo.apidocs.core.DubboApiDocsCache;
-import org.apache.dubbo.config.annotation.DubboService;
-
-import lombok.extern.slf4j.Slf4j;
+import io.swagger.annotations.ApiParam;
+import lombok.Getter;
+import lombok.Setter;
/**
- * The api implementation of Dubbo doc.
+ * Parameters passed to duboo service api.
* @author klw(213539@qq.com)
- * 2020/10/29 17:38
+ * 2020/11/14 20:46
*/
-@Slf4j
-@DubboService
-public class DubboDocProviderImpl implements IDubboDocProvider {
+@Getter
+@Setter
+public class CallDubboServiceRequestInterfacePrarm {
- @Override
- public String apiModuleList() {
- return DubboApiDocsCache.getAllApiModuleInfo();
- }
+ @ApiParam(value = "Parameter type (full package path), such as: java.lang.String", required = true)
+ private String prarmType;
- @Override
- public String apiModuleInfo(String apiInterfaceClassName) {
- return DubboApiDocsCache.getApiModuleStr(apiInterfaceClassName);
- }
+ @ApiParam(value = "Parameter value", required = true)
+ private Object prarmValue;
- @Override
- public String apiParamsResponseInfo(String apiInterfaceClassNameMethodName) {
- return DubboApiDocsCache.getApiParamsAndRespStr(apiInterfaceClassNameMethodName);
- }
}
diff --git a/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/java/org/apache/dubbo/apidocs/editor/CustomDateEditor.java b/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/java/org/apache/dubbo/apidocs/editor/CustomDateEditor.java
new file mode 100644
index 0000000..f29bced
--- /dev/null
+++ b/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/java/org/apache/dubbo/apidocs/editor/CustomDateEditor.java
@@ -0,0 +1,122 @@
+/*
+ * 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.
+ */
+package org.apache.dubbo.apidocs.editor;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.util.StringUtils;
+
+import java.beans.PropertyEditorSupport;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.regex.Pattern;
+
+/**
+ * Date editor for controller.
+ * @author klw(213539@qq.com)
+ * 2020/11/14 20:47
+ */
+public class CustomDateEditor extends PropertyEditorSupport {
+
+ protected Logger logger = LoggerFactory.getLogger(this.getClass());
+
+ @Override
+ public void setAsText(String text) throws IllegalArgumentException {
+ if (!StringUtils.hasText(text)) {
+ setValue(null);
+ } else {
+ setValue(this.dateAdapter(text));
+ }
+ }
+
+ @Override
+ public String getAsText() {
+ Date value = (Date) getValue();
+ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ return (value != null ? dateFormat.format(value) : "");
+ }
+
+ /**
+ * String to date adaptation method.
+ * 2020/11/14 20:59
+ * @param dateStr
+ * @return java.util.Date
+ */
+ public static Date dateAdapter(String dateStr) {
+ Date date = null;
+
+ if (!(null == dateStr || "".equals(dateStr))) {
+ try {
+ long timeLong = Long.parseLong(dateStr);
+ date = new Date(timeLong);
+
+ return date;
+ } catch (Exception e) {
+
+ }
+
+ if (dateStr.contains("CST")) {
+ date = new Date(dateStr);
+ } else if (dateStr.contains("Z")) {
+ dateStr = dateStr.replace("\"", "");
+ dateStr = dateStr.replace("Z", " UTC");
+ SimpleDateFormat utcFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS Z");
+ try {
+ date = utcFormat.parse(dateStr);
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ } else {
+ dateStr = dateStr.replace("年", "-").replace("月", "-").replace("日", "").replaceAll("/", "-").replaceAll("\\.", "-").trim();
+ String fm = "";
+
+ // determine date format
+ if (Pattern.compile("^[0-9]{4}-[0-9]{2}-[0-9]{2}.*").matcher(dateStr).matches()) {
+ fm = "yyyy-MM-dd";
+ } else if (Pattern.compile("^[0-9]{4}-[0-9]{1}-[0-9]+.*||^[0-9]{4}-[0-9]+-[0-9]{1}.*").matcher(dateStr).matches()) {
+ fm = "yyyy-M-d";
+ } else if (Pattern.compile("^[0-9]{2}-[0-9]{2}-[0-9]{2}.*").matcher(dateStr).matches()) {
+ fm = "yy-MM-dd";
+ } else if (Pattern.compile("^[0-9]{2}-[0-9]{1}-[0-9]+.*||^[0-9]{2}-[0-9]+-[0-9]{1}.*").matcher(dateStr).matches()) {
+ fm = "yy-M-d";
+ }
+
+ // determine time format
+ if (Pattern.compile(".*[ ][0-9]{2}").matcher(dateStr).matches()) {
+ fm += " HH";
+ } else if (Pattern.compile(".*[ ][0-9]{2}:[0-9]{2}").matcher(dateStr).matches()) {
+ fm += " HH:mm";
+ } else if (Pattern.compile(".*[ ][0-9]{2}:[0-9]{2}:[0-9]{2}").matcher(dateStr).matches()) {
+ fm += " HH:mm:ss";
+ } else if (Pattern.compile(".*[ ][0-9]{2}:[0-9]{2}:[0-9]{2}:[0-9]{0,3}").matcher(dateStr).matches()) {
+ fm += " HH:mm:ss:sss";
+ }
+
+ if (!"".equals(fm)) {
+ try {
+ date = new SimpleDateFormat(fm).parse(dateStr);
+ } catch (ParseException e) {
+ throw new IllegalArgumentException(dateStr + " cannot be converted to date format!");
+ }
+ }
+ }
+ }
+
+ return date;
+ }
+}
diff --git a/dubbo-api-docs/dubbo-api-docs-core/src/main/java/org/apache/dubbo/apidocs/core/providers/DubboDocProviderImpl.java b/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/java/org/apache/dubbo/apidocs/editor/CustomLocalDateEditor.java
similarity index 53%
copy from dubbo-api-docs/dubbo-api-docs-core/src/main/java/org/apache/dubbo/apidocs/core/providers/DubboDocProviderImpl.java
copy to dubbo-api-docs/dubbo-api-docs-ui-server/src/main/java/org/apache/dubbo/apidocs/editor/CustomLocalDateEditor.java
index d8cfb2b..08fb508 100644
--- a/dubbo-api-docs/dubbo-api-docs-core/src/main/java/org/apache/dubbo/apidocs/core/providers/DubboDocProviderImpl.java
+++ b/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/java/org/apache/dubbo/apidocs/editor/CustomLocalDateEditor.java
@@ -14,34 +14,32 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.dubbo.apidocs.core.providers;
+package org.apache.dubbo.apidocs.editor;
-import org.apache.dubbo.apidocs.core.DubboApiDocsCache;
-import org.apache.dubbo.config.annotation.DubboService;
-import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.apidocs.utils.LocalDateTimeUtil;
+
+import java.beans.PropertyEditorSupport;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
/**
- * The api implementation of Dubbo doc.
+ * Localdate editor for controller.
* @author klw(213539@qq.com)
- * 2020/10/29 17:38
+ * 2020/11/14 20:59
*/
-@Slf4j
-@DubboService
-public class DubboDocProviderImpl implements IDubboDocProvider {
+public class CustomLocalDateEditor extends PropertyEditorSupport {
@Override
- public String apiModuleList() {
- return DubboApiDocsCache.getAllApiModuleInfo();
+ public void setAsText(String text) throws IllegalArgumentException {
+ setValue(LocalDateTimeUtil.formatToLD(text));
}
-
- @Override
- public String apiModuleInfo(String apiInterfaceClassName) {
- return DubboApiDocsCache.getApiModuleStr(apiInterfaceClassName);
- }
-
+
@Override
- public String apiParamsResponseInfo(String apiInterfaceClassNameMethodName) {
- return DubboApiDocsCache.getApiParamsAndRespStr(apiInterfaceClassNameMethodName);
+ public String getAsText() {
+ LocalDate date = (LocalDate)getValue();
+ return date.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
}
+
+
}
diff --git a/dubbo-api-docs/dubbo-api-docs-core/src/main/java/org/apache/dubbo/apidocs/core/providers/DubboDocProviderImpl.java b/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/java/org/apache/dubbo/apidocs/editor/CustomLocalDateTimeEditor.java
similarity index 53%
copy from dubbo-api-docs/dubbo-api-docs-core/src/main/java/org/apache/dubbo/apidocs/core/providers/DubboDocProviderImpl.java
copy to dubbo-api-docs/dubbo-api-docs-ui-server/src/main/java/org/apache/dubbo/apidocs/editor/CustomLocalDateTimeEditor.java
index d8cfb2b..6f87a54 100644
--- a/dubbo-api-docs/dubbo-api-docs-core/src/main/java/org/apache/dubbo/apidocs/core/providers/DubboDocProviderImpl.java
+++ b/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/java/org/apache/dubbo/apidocs/editor/CustomLocalDateTimeEditor.java
@@ -14,34 +14,32 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.dubbo.apidocs.core.providers;
+package org.apache.dubbo.apidocs.editor;
-import org.apache.dubbo.apidocs.core.DubboApiDocsCache;
-import org.apache.dubbo.config.annotation.DubboService;
-import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.apidocs.utils.LocalDateTimeUtil;
+
+import java.beans.PropertyEditorSupport;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
/**
- * The api implementation of Dubbo doc.
+ * LocalDateTime editor for controller.
* @author klw(213539@qq.com)
- * 2020/10/29 17:38
+ * 2020/11/14 20:59
*/
-@Slf4j
-@DubboService
-public class DubboDocProviderImpl implements IDubboDocProvider {
+public class CustomLocalDateTimeEditor extends PropertyEditorSupport {
@Override
- public String apiModuleList() {
- return DubboApiDocsCache.getAllApiModuleInfo();
+ public void setAsText(String text) throws IllegalArgumentException {
+ setValue(LocalDateTimeUtil.formatToLDT(text));
}
-
- @Override
- public String apiModuleInfo(String apiInterfaceClassName) {
- return DubboApiDocsCache.getApiModuleStr(apiInterfaceClassName);
- }
-
+
@Override
- public String apiParamsResponseInfo(String apiInterfaceClassNameMethodName) {
- return DubboApiDocsCache.getApiParamsAndRespStr(apiInterfaceClassNameMethodName);
+ public String getAsText() {
+ LocalDateTime date = (LocalDateTime)getValue();
+ return date.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
}
+
+
}
diff --git a/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/java/org/apache/dubbo/apidocs/utils/DubboGenericUtil.java b/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/java/org/apache/dubbo/apidocs/utils/DubboGenericUtil.java
new file mode 100644
index 0000000..613d79d
--- /dev/null
+++ b/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/java/org/apache/dubbo/apidocs/utils/DubboGenericUtil.java
@@ -0,0 +1,175 @@
+/*
+ * 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.
+ */
+package org.apache.dubbo.apidocs.utils;
+
+import org.apache.dubbo.config.ApplicationConfig;
+import org.apache.dubbo.config.ReferenceConfig;
+import org.apache.dubbo.config.RegistryConfig;
+import org.apache.dubbo.rpc.service.GenericService;
+
+import java.util.Map;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+/**
+ * Dubbo operation related tool class.
+ * @author klw(213539@qq.com)
+ * 2020/11/14 21:00
+ */
+public class DubboGenericUtil {
+
+ /**
+ * Current application information.
+ */
+ private static ApplicationConfig application;
+
+ /**
+ * Registry information cache.
+ */
+ private static Map<String, RegistryConfig> registryConfigCache;
+
+ /**
+ * Dubbo service interface proxy cache.
+ */
+ private static Map<String, ReferenceConfig<GenericService>> referenceCache;
+
+ private static final ExecutorService executor;
+
+ /**
+ * Default retries.
+ */
+ private static int retries = 2;
+
+ /**
+ * Default timeout.
+ */
+ private static int timeout = 1000;
+
+ static{
+ // T (number of threads) = N (number of server cores) * u (expected CPU utilization) * (1 + E (waiting time) / C (calculation time))
+ executor = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors() * 40 * (1 + 5 / 2));
+ application = new ApplicationConfig();
+ application.setName("alita-dubbo-debug-tool");
+ registryConfigCache = new ConcurrentHashMap<>();
+ referenceCache = new ConcurrentHashMap<>();
+ }
+
+ public static void setRetriesAndTimeout(int retries, int timeout){
+ DubboGenericUtil.retries = retries;
+ DubboGenericUtil.timeout = timeout;
+ }
+
+ /**
+ * Get registry information.
+ * 2020/11/14 21:01
+ * @param address address Address of Registration Center
+ * @return org.apache.dubbo.config.RegistryConfig
+ */
+ private static RegistryConfig getRegistryConfig(String address) {
+ RegistryConfig registryConfig = registryConfigCache.get(address);
+ if (null == registryConfig) {
+ registryConfig = new RegistryConfig();
+ registryConfig.setAddress(address);
+ registryConfig.setRegister(false);
+ registryConfigCache.put(address, registryConfig);
+ }
+ return registryConfig;
+ }
+
+ /**
+ * Get proxy object for dubbo service.
+ * 2019/9/19 17:43
+ * @param: address address Address of Registration Center
+ * @param: interfaceName Interface full package path
+ * @return org.apache.dubbo.config.ReferenceConfig<org.apache.dubbo.rpc.service.GenericService>
+ */
+ private static ReferenceConfig<GenericService> getReferenceConfig(String address, String interfaceName) {
+ ReferenceConfig<GenericService> referenceConfig = referenceCache.get(address + "/" + interfaceName);
+ if (null == referenceConfig) {
+ referenceConfig = new ReferenceConfig<>();
+ referenceConfig.setRetries(retries);
+ referenceConfig.setTimeout(timeout);
+ referenceConfig.setApplication(application);
+ if(address.startsWith("dubbo")){
+ referenceConfig.setUrl(address);
+ } else {
+ referenceConfig.setRegistry(getRegistryConfig(address));
+ }
+ referenceConfig.setInterface(interfaceName);
+ // Declared as a generic interface
+ referenceConfig.setGeneric(true);
+ referenceCache.put(address + "/" + interfaceName, referenceConfig);
+ }
+ return referenceConfig;
+ }
+
+ /**
+ * Call duboo provider and return {@link CompletableFuture}.
+ * 2020/3/1 14:55
+ * @param: address
+ * @param: interfaceName
+ * @param: methodName
+ * @param: async Whether the provider is asynchronous is to directly return the {@link CompletableFuture}
+ * returned by the provider, not to wrap it as {@link CompletableFuture}
+ * @param: prarmTypes
+ * @param: prarmValues
+ * @return java.util.concurrent.CompletableFuture<java.lang.Object>
+ */
+ public static CompletableFuture<Object> invoke(String address, String interfaceName,
+ String methodName, boolean async, String[] prarmTypes,
+ Object[] prarmValues) {
+ CompletableFuture future = null;
+ ReferenceConfig<GenericService> reference = getReferenceConfig(address, interfaceName);
+ if (null != reference) {
+ GenericService genericService = reference.get();
+ if (null != genericService) {
+ if(async){
+ future = genericService.$invokeAsync(methodName, prarmTypes, prarmValues);
+ } else {
+ future = CompletableFuture.supplyAsync(() -> genericService.$invoke(methodName, prarmTypes, prarmValues), executor);
+ }
+ }
+ }
+ return future;
+ }
+
+ /**
+ * Synchronous call provider. The provider must provide synchronous api.
+ * 2020/3/1 14:58
+ * @param: address
+ * @param: interfaceName
+ * @param: methodName
+ * @param: prarmTypes
+ * @param: prarmValues
+ * @return java.lang.Object
+ */
+ public static Object invokeSync(String address, String interfaceName,
+ String methodName, String[] prarmTypes,
+ Object[] prarmValues) {
+ ReferenceConfig<GenericService> reference = getReferenceConfig(address, interfaceName);
+ if (null != reference) {
+ GenericService genericService = reference.get();
+ if (null != genericService) {
+ return genericService.$invoke(methodName, prarmTypes, prarmValues);
+ }
+ }
+ return null;
+ }
+
+}
diff --git a/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/java/org/apache/dubbo/apidocs/utils/LocalDateTimeUtil.java b/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/java/org/apache/dubbo/apidocs/utils/LocalDateTimeUtil.java
new file mode 100644
index 0000000..0fd69e8
--- /dev/null
+++ b/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/java/org/apache/dubbo/apidocs/utils/LocalDateTimeUtil.java
@@ -0,0 +1,75 @@
+/*
+ * 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.
+ */
+package org.apache.dubbo.apidocs.utils;
+
+import java.time.*;
+import java.time.format.DateTimeFormatter;
+import java.time.temporal.ChronoUnit;
+import java.time.temporal.TemporalUnit;
+import java.util.Date;
+
+
+/**
+ * Date time tool class of LocalDateTime.
+ * @author klw(213539@qq.com)
+ * 2020/11/14 21:02
+ */
+public class LocalDateTimeUtil {
+
+ /**
+ * Create a LocalDateTime based on the passed in string date and the corresponding format.
+ * @param dateStr
+ * @param dateFormatter
+ * @return
+ */
+ public static LocalDateTime formatToLDT(String dateStr, String dateFormatter) {
+ //yyyy-MM-dd HH:mm:ss
+ return LocalDateTime.parse(dateStr, DateTimeFormatter.ofPattern(dateFormatter));
+ }
+
+ /**
+ * Create LocalDateTime from a string in the format "yyyy-MM-dd HH:mm:ss".
+ * @param dateStr
+ * @return
+ */
+ public static LocalDateTime formatToLDT(String dateStr) {
+ return formatToLDT(dateStr, "yyyy-MM-dd HH:mm:ss");
+ }
+
+ /**
+ * Create a LocalDate based on the passed in string date and the corresponding format.
+ * @param dateStr
+ * @param dateFormatter
+ * @return
+ */
+ public static LocalDate formatToLD(String dateStr, String dateFormatter) {
+ return LocalDate.parse(dateStr, DateTimeFormatter.ofPattern(dateFormatter));
+ }
+
+ /**
+ * Create LocalDate from a string in the format "yyyy-MM-dd".
+ * @param dateStr
+ * @return
+ */
+ public static LocalDate formatToLD(String dateStr) {
+ return formatToLD(dateStr, "yyyy-MM-dd");
+ }
+
+
+
+
+}
diff --git a/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/resources/application.yml b/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/resources/application.yml
new file mode 100644
index 0000000..a482c54
--- /dev/null
+++ b/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/resources/application.yml
@@ -0,0 +1,11 @@
+server:
+ port: 8888
+spring:
+ application:
+ name: dubbo-doc-ui-server
+dubbo:
+ reference:
+ heartbeat: 1000
+ consumer:
+ timeout: 10000
+ retries: 0
\ No newline at end of file
diff --git a/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/resources/banner.txt b/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/resources/banner.txt
new file mode 100644
index 0000000..ca3cb3e
--- /dev/null
+++ b/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/resources/banner.txt
@@ -0,0 +1,6 @@
+ _____ _ _ _____ _____ _____
+ | __ \ | | | | /\ | __ \_ _| | __ \
+ | | | |_ _| |__ | |__ ___ / \ | |__) || | | | | | ___ ___ ___
+ | | | | | | | '_ \| '_ \ / _ \ / /\ \ | ___/ | | | | | |/ _ \ / __/ __|
+ | |__| | |_| | |_) | |_) | (_) | / ____ \| | _| |_ | |__| | (_) | (__\__ \
+ |_____/ \__,_|_.__/|_.__/ \___/ /_/ \_\_| |_____| |_____/ \___/ \___|___/
diff --git a/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/resources/log4j2.xml b/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/resources/log4j2.xml
new file mode 100644
index 0000000..929bc5e
--- /dev/null
+++ b/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/resources/log4j2.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Configuration status="WARN" monitorInterval="600" shutdownHook="disable">
+ <Properties>
+ <Property name="logDir" value="/home/weihu/deploy/logs/dubbo-doc/" />
+ <Property name="genericPattern" value="[dubboDoc]-%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
+ <Property name="genericFilePattern" value="%d{yyyy-MM-dd HH:mm}-%i" />
+ </Properties>
+ <Appenders>
+ <Console name="consoleAppender" target="SYSTEM_OUT">
+ <PatternLayout pattern="${genericPattern}" />
+ </Console>
+
+ </Appenders>
+ <Loggers>
+ <asyncRoot level="INFO">
+ <AppenderRef ref="consoleAppender" />
+ </asyncRoot>
+
+ <logger name="org.springframework" level="ERROR" />
+ <logger name="com.alibaba" level="ERROR" />
+ <logger name="org.apache" level="ERROR" />
+ </Loggers>
+</Configuration>
diff --git a/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/resources/static/css/index.css b/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/resources/static/css/index.css
new file mode 100644
index 0000000..98a1ac6
--- /dev/null
+++ b/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/resources/static/css/index.css
@@ -0,0 +1 @@
+.next-sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;margin:-1px}/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;box-si [...]
\ No newline at end of file
diff --git a/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/resources/static/favicon.png b/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/resources/static/favicon.png
new file mode 100644
index 0000000..a2605c5
Binary files /dev/null and b/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/resources/static/favicon.png differ
diff --git a/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/resources/static/index.html b/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/resources/static/index.html
new file mode 100644
index 0000000..e1bf09d
--- /dev/null
+++ b/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/resources/static/index.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<!--
+ * 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.
+ -->
+<html>
+ <head>
+ <meta charset="utf-8" />
+ <meta http-equiv="x-ua-compatible" content="ie=edge,chrome=1" />
+ <meta name="viewport" content="width=device-width" />
+ <title>Dubbo Doc</title>
+ <link rel="shortcut icon" href="./favicon.png"><link href="./css/index.css" rel="stylesheet"></head>
+
+ <body>
+ <div id="icestark-container"></div>
+ <script type="text/javascript" src="./js/index.js"></script></body>
+</html>
diff --git a/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/resources/static/js/index.js b/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/resources/static/js/index.js
new file mode 100644
index 0000000..948c8b0
--- /dev/null
+++ b/dubbo-api-docs/dubbo-api-docs-ui-server/src/main/resources/static/js/index.js
@@ -0,0 +1,95 @@
+!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typ [...]
+/*!
+ Copyright (c) 2017 Jed Watson.
+ Licensed under the MIT License (MIT), see
+ http://jedwatson.github.io/classnames
+*/!function(){"use strict";var n={}.hasOwnProperty;function a(){for(var e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var o=typeof r;if("string"===o||"number"===o)e.push(r);else if(Array.isArray(r)&&r.length){var i=a.apply(null,r);i&&e.push(i)}else if("object"===o)for(var s in r)n.call(r,s)&&r[s]&&e.push(s)}}return e.join(" ")}e.exports?(a.default=a,e.exports=a):void 0===(o=function(){return a}.apply(t,r=[]))||(e.exports=o)}()},function(e,t,n){"use strict";t.__esModule=!0;var [...]
+/*! *****************************************************************************
+Copyright (c) Microsoft Corporation. All rights reserved.
+Licensed 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
+
+THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
+WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
+MERCHANTABLITY OR NON-INFRINGEMENT.
+
+See the Apache Version 2.0 License for specific language governing permissions
+and limitations under the License.
+***************************************************************************** */
+var r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function o(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var a=function(){return(a=Object.assign||function e(t){for(var n,r=1,o=arguments.length;r<o;r++)for(var a in n=arguments[r])Object.prototype.hasOwnProperty.call(n,a)&&(t[a]=n[a]);retu [...]
+/*!
+ * jQuery JavaScript Library v3.4.1
+ * https://jquery.com/
+ *
+ * Includes Sizzle.js
+ * https://sizzlejs.com/
+ *
+ * Copyright JS Foundation and other contributors
+ * Released under the MIT license
+ * https://jquery.org/license
+ *
+ * Date: 2019-05-01T21:04Z
+ */!function(t,n){"use strict";"object"==typeof e.exports?e.exports=t.document?n(t,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return n(e)}:n(t)}("undefined"!=typeof window?window:this,(function(n,a){"use strict";var i=[],s=n.document,l=Object.getPrototypeOf,u=i.slice,c=i.concat,f=i.push,p=i.indexOf,d={},h=d.toString,v=d.hasOwnProperty,m=v.toString,y=m.call(Object),g={},b=function e(t){return"function"==typeof t&&"number"!=typeof t.nodeType} [...]
+/*!
+ * Sizzle CSS Selector Engine v2.3.4
+ * https://sizzlejs.com/
+ *
+ * Copyright JS Foundation and other contributors
+ * Released under the MIT license
+ * https://js.foundation/
+ *
+ * Date: 2019-04-08
+ */
+function(e){var t,n,r,o,a,i,s,l,u,c,f,p,d,h,v,m,y,g,b,w="sizzle"+1*new Date,x=e.document,E=0,_=0,C=le(),S=le(),k=le(),O=le(),T=function(e,t){return e===t&&(f=!0),0},P={}.hasOwnProperty,j=[],A=j.pop,N=j.push,M=j.push,D=j.slice,L=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",I="[\\x20\\t\\r\\n\\f]",F="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",z=" [...]
+/*!
+ * cookie
+ * Copyright(c) 2012-2014 Roman Shtylman
+ * Copyright(c) 2015 Douglas Christopher Wilson
+ * MIT Licensed
+ */t.parse=s,t.serialize=l;var r=decodeURIComponent,o=encodeURIComponent,a=/; */,i=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;function s(e,t){if("string"!=typeof e)throw new TypeError("argument str must be a string");for(var n={},o=t||{},i=e.split(a),s=o.decode||r,l=0;l<i.length;l++){var c=i[l],f=c.indexOf("=");if(!(f<0)){var p=c.substr(0,f).trim(),d=c.substr(++f,c.length).trim();'"'==d[0]&&(d=d.slice(1,-1)),null==n[p]&&(n[p]=u(d,s))}}return n}function l(e,t,n){var r=n||{},a=r.encode||o;if( [...]
+/*
+object-assign
+(c) Sindre Sorhus
+@license MIT
+*/var r=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;function i(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function s(){try{if(!Object.assign)return!1;var e=new String("abc"),t;if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var n={},r=0;r<10;r++)n["_"+String.fromCharCode(r)]=r;if("0123456789"!==Object.getOwnPropertyNames(n).map((function(e){return n [...]
+/** @license React v16.13.0
+ * react.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */var r=n(247),o="function"==typeof Symbol&&Symbol.for,a=o?Symbol.for("react.element"):60103,i=o?Symbol.for("react.portal"):60106,s=o?Symbol.for("react.fragment"):60107,l=o?Symbol.for("react.strict_mode"):60108,u=o?Symbol.for("react.profiler"):60114,c=o?Symbol.for("react.provider"):60109,f=o?Symbol.for("react.context"):60110,p=o?Symbol.for("react.forward_ref"):60112,d=o?Symbol.for("react.suspense"):60113,h=o?Symbol.for("react.memo"):60115,v=o?Symbol.for("react.lazy"):60116,m="function"= [...]
+/** @license React v16.13.0
+ * react-dom.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */var r=n(1),o=n(247),a=n(525);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!r)throw Error(i(227));function s(e,t,n,r,o,a,i,s,l){var u=Array.prototype.slice.call(arguments,3);try{t.apply(n,u)}catch(e){this.onError(e)} [...]
+/** @license React v0.19.0
+ * scheduler.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */var r,o,a,i,s;if("undefined"==typeof window||"function"!=typeof MessageChannel){var l=null,u=null,c=function(){if(null!==l)try{var e=t.unstable_now();l(!0,e),l=null}catch(e){throw setTimeout(c,0),e}},f=Date.now();t.unstable_now=function(){return Date.now()-f},r=function(e){null!==l?setTimeout(r,0,e):(l=e,setTimeout(c,0))},o=function(e,t){u=setTimeout(e,t)},a=function(){clearTimeout(u)},i=function(){return!1},s=t.unstable_forceFrameRate=function(){}}else{var p=window.performance,d=wind [...]
+/*!
+ * escape-html
+ * Copyright(c) 2012-2013 TJ Holowaychuk
+ * Copyright(c) 2015 Andreas Lubbe
+ * Copyright(c) 2015 Tiancheng "Timothy" Gu
+ * MIT Licensed
+ */var r=/["'&<>]/;function o(e){var t=""+e,n=r.exec(t),o;if(!n)return t;var a="",i=0,s=0;for(i=n.index;i<t.length;i++){switch(t.charCodeAt(i)){case 34:o=""";break;case 38:o="&";break;case 39:o="'";break;case 60:o="<";break;case 62:o=">";break;default:continue}s!==i&&(a+=t.substring(s,i)),s=i+1,a+=o}return s!==i?a+t.substring(s,i):a}e.exports=o},function(e,t,n){"use strict";t.decode=t.parse=n(561),t.encode=t.stringify=n(562)},function(e,t,n){"use strict";function r(e,t [...]
+/** @license React v16.13.0
+ * react-is.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */var r="function"==typeof Symbol&&Symbol.for,o=r?Symbol.for("react.element"):60103,a=r?Symbol.for("react.portal"):60106,i=r?Symbol.for("react.fragment"):60107,s=r?Symbol.for("react.strict_mode"):60108,l=r?Symbol.for("react.profiler"):60114,u=r?Symbol.for("react.provider"):60109,c=r?Symbol.for("react.context"):60110,f=r?Symbol.for("react.async_mode"):60111,p=r?Symbol.for("react.concurrent_mode"):60111,d=r?Symbol.for("react.forward_ref"):60112,h=r?Symbol.for("react.suspense"):60113,v=r?S [...]
\ No newline at end of file
diff --git a/dubbo-api-docs/dubbo-api-docs-ui/.editorconfig b/dubbo-api-docs/dubbo-api-docs-ui/.editorconfig
new file mode 100644
index 0000000..5760be5
--- /dev/null
+++ b/dubbo-api-docs/dubbo-api-docs-ui/.editorconfig
@@ -0,0 +1,12 @@
+# http://editorconfig.org
+root = true
+
+[*]
+indent_style = space
+indent_size = 2
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+
+[*.md]
+trim_trailing_whitespace = false
diff --git a/dubbo-api-docs/dubbo-api-docs-ui/.eslintignore b/dubbo-api-docs/dubbo-api-docs-ui/.eslintignore
new file mode 100644
index 0000000..3b437e6
--- /dev/null
+++ b/dubbo-api-docs/dubbo-api-docs-ui/.eslintignore
@@ -0,0 +1,11 @@
+# 忽略目录
+build/
+tests/
+demo/
+
+# node 覆盖率文件
+coverage/
+
+# 忽略文件
+**/*-min.js
+**/*.min.js
diff --git a/dubbo-api-docs/dubbo-api-docs-ui/.eslintrc.js b/dubbo-api-docs/dubbo-api-docs-ui/.eslintrc.js
new file mode 100644
index 0000000..54a71d5
--- /dev/null
+++ b/dubbo-api-docs/dubbo-api-docs-ui/.eslintrc.js
@@ -0,0 +1,3 @@
+const { eslint } = require('@ice/spec');
+
+module.exports = eslint;
\ No newline at end of file
diff --git a/dubbo-api-docs/dubbo-api-docs-ui/.gitignore b/dubbo-api-docs/dubbo-api-docs-ui/.gitignore
new file mode 100644
index 0000000..7c3f84e
--- /dev/null
+++ b/dubbo-api-docs/dubbo-api-docs-ui/.gitignore
@@ -0,0 +1,16 @@
+# dependencies
+/node_modules
+
+# production
+/build
+/dist
+
+# misc
+.idea/
+.happypack
+.DS_Store
+.ice
+
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
diff --git a/dubbo-api-docs/dubbo-api-docs-ui/.prettierignore b/dubbo-api-docs/dubbo-api-docs-ui/.prettierignore
new file mode 100644
index 0000000..f238d06
--- /dev/null
+++ b/dubbo-api-docs/dubbo-api-docs-ui/.prettierignore
@@ -0,0 +1,9 @@
+build/
+tests/
+demo/
+.ice/
+coverage/
+**/*-min.js
+**/*.min.js
+package-lock.json
+yarn.lock
\ No newline at end of file
diff --git a/dubbo-api-docs/dubbo-api-docs-ui/.prettierrc.js b/dubbo-api-docs/dubbo-api-docs-ui/.prettierrc.js
new file mode 100644
index 0000000..2d68f3f
--- /dev/null
+++ b/dubbo-api-docs/dubbo-api-docs-ui/.prettierrc.js
@@ -0,0 +1,3 @@
+const { prettier } = require('@ice/spec');
+
+module.exports = prettier;
diff --git a/dubbo-api-docs/dubbo-api-docs-ui/.stylelintignore b/dubbo-api-docs/dubbo-api-docs-ui/.stylelintignore
new file mode 100644
index 0000000..82af6f6
--- /dev/null
+++ b/dubbo-api-docs/dubbo-api-docs-ui/.stylelintignore
@@ -0,0 +1,7 @@
+# 忽略目录
+build/
+tests/
+demo/
+
+# node 覆盖率文件
+coverage/
diff --git a/dubbo-api-docs/dubbo-api-docs-ui/.stylelintrc.js b/dubbo-api-docs/dubbo-api-docs-ui/.stylelintrc.js
new file mode 100644
index 0000000..eeb605b
--- /dev/null
+++ b/dubbo-api-docs/dubbo-api-docs-ui/.stylelintrc.js
@@ -0,0 +1,3 @@
+const { stylelint } = require('@ice/spec');
+
+module.exports = stylelint;
diff --git a/dubbo-api-docs/dubbo-api-docs-ui/README.md b/dubbo-api-docs/dubbo-api-docs-ui/README.md
new file mode 100644
index 0000000..8a340fb
--- /dev/null
+++ b/dubbo-api-docs/dubbo-api-docs-ui/README.md
@@ -0,0 +1,14 @@
+# ice-stark-layout
+
+## 使用
+
+- 启动调试服务: `npm start`
+- 构建 dist: `npm run build`
+
+## 目录结构
+
+- 应用配置: `src/app.js`
+- 路由配置: `src/routes.js`
+- 布局文件: `src/layouts`
+- 通用组件: `src/components`
+- 页面文件: `src/pages`
diff --git a/dubbo-api-docs/dubbo-api-docs-ui/build.json b/dubbo-api-docs/dubbo-api-docs-ui/build.json
new file mode 100644
index 0000000..b2d2470
--- /dev/null
+++ b/dubbo-api-docs/dubbo-api-docs-ui/build.json
@@ -0,0 +1,21 @@
+{
+ "publicPath": "./",
+ "plugins": [
+ "build-plugin-icestark",
+ ["build-plugin-fusion", {
+ "themePackage": "@alifd/theme-design-pro",
+ "themeConfig": {
+ "nextPrefix": "next-icestark-"
+ }
+ }],
+ ["build-plugin-moment-locales", {
+ "locales": ["zh-cn"]
+ }]
+ ],
+ "proxy": {
+ "/api/**": {
+ "enable": true,
+ "target": "http://localhost:8888"
+ }
+ }
+}
diff --git a/dubbo-api-docs/dubbo-api-docs-ui/package-lock.json b/dubbo-api-docs/dubbo-api-docs-ui/package-lock.json
new file mode 100644
index 0000000..23a69d1
--- /dev/null
+++ b/dubbo-api-docs/dubbo-api-docs-ui/package-lock.json
@@ -0,0 +1,24011 @@
+{
+ "name": "@icedesign/stark-layout-scaffold",
+ "version": "3.0.6",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "@ahooksjs/use-request": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npm.taobao.org/@ahooksjs/use-request/download/@ahooksjs/use-request-2.8.1.tgz",
+ "integrity": "sha1-vwamM2jfGFm2t5qUZhLrDSiJq28=",
+ "dev": true,
+ "requires": {
+ "lodash.debounce": "^4.0.8",
+ "lodash.throttle": "^4.1.1"
+ }
+ },
+ "@alib/build-scripts": {
+ "version": "0.1.29",
+ "resolved": "https://registry.npm.taobao.org/@alib/build-scripts/download/@alib/build-scripts-0.1.29.tgz",
+ "integrity": "sha1-RreUu/XBA7gvAOXdnfGaWKdEJYE=",
+ "dev": true,
+ "requires": {
+ "address": "^1.1.0",
+ "camelcase": "^5.3.1",
+ "chalk": "^2.4.1",
+ "chokidar": "^3.3.1",
+ "commander": "^2.19.0",
+ "deepmerge": "^4.0.0",
+ "detect-port": "^1.3.0",
+ "fs-extra": "^8.1.0",
+ "jest": "^26.4.2",
+ "json5": "^2.1.3",
+ "lodash": "^4.17.15",
+ "npmlog": "^4.1.2",
+ "react-dev-utils": "^9.0.4",
+ "semver": "^7.3.2",
+ "webpack": "^4.27.1",
+ "webpack-dev-server": "^3.7.2",
+ "yargs-parser": "^14.0.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz?cache=0&sync_timestamp=1603921882890&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz",
+ "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=",
+ "dev": true
+ },
+ "commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.20.3.tgz?cache=0&sync_timestamp=1603599627620&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.20.3.tgz",
+ "integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=",
+ "dev": true
+ },
+ "json5": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npm.taobao.org/json5/download/json5-2.1.3.tgz",
+ "integrity": "sha1-ybD3+pIzv+WAf+ZvzzpWF+1ZfUM=",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.5"
+ }
+ },
+ "yargs-parser": {
+ "version": "14.0.0",
+ "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-14.0.0.tgz?cache=0&sync_timestamp=1604886694625&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-14.0.0.tgz",
+ "integrity": "sha1-QuJXd7BnGOyZ6sLDqYrT3nO2gY8=",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
+ }
+ }
+ },
+ "@alifd/field": {
+ "version": "1.4.5",
+ "resolved": "https://registry.npm.taobao.org/@alifd/field/download/@alifd/field-1.4.5.tgz",
+ "integrity": "sha1-Hh5eg8FDY31u/pLrkdzenginOp8=",
+ "requires": {
+ "@alifd/validate": "^1.2.0",
+ "prop-types": "^15.5.8"
+ }
+ },
+ "@alifd/fusion-collector": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npm.taobao.org/@alifd/fusion-collector/download/@alifd/fusion-collector-1.3.5.tgz",
+ "integrity": "sha1-gUc5qFKla8MkmFLVHKfFinln9NY=",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.8.4",
+ "glob": "^7.1.2",
+ "graceful-fs": "^4.1.11",
+ "ice-npm-utils": "^1.4.1",
+ "ini": "^1.3.5"
+ }
+ },
+ "@alifd/next": {
+ "version": "1.21.8",
+ "resolved": "https://registry.npm.taobao.org/@alifd/next/download/@alifd/next-1.21.8.tgz",
+ "integrity": "sha1-yQGzKFTL3pmqq42S5Oc1IEpB7nw=",
+ "requires": {
+ "@alifd/field": "~1.4.1",
+ "@alifd/validate": "~1.2.0",
+ "babel-runtime": "^6.26.0",
+ "classnames": "^2.2.3",
+ "hoist-non-react-statics": "^2.1.0",
+ "lodash.clonedeep": "^4.5.0",
+ "prop-types": "^15.6.0",
+ "react-lifecycles-compat": "^3.0.4",
+ "react-transition-group": "^2.2.1",
+ "shallow-element-equals": "^1.0.1"
+ }
+ },
+ "@alifd/theme-design-pro": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npm.taobao.org/@alifd/theme-design-pro/download/@alifd/theme-design-pro-0.6.2.tgz",
+ "integrity": "sha1-qaoxJgIooS2NlfvwTog/d1oO5Fs=",
+ "requires": {
+ "@alifd/next": "~1.19.22"
+ },
+ "dependencies": {
+ "@alifd/field": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npm.taobao.org/@alifd/field/download/@alifd/field-1.3.5.tgz",
+ "integrity": "sha1-uPNwuNnbwquirIX2pZiezVHzZnM=",
+ "requires": {
+ "@alifd/validate": "^1.1.3",
+ "prop-types": "^15.5.8"
+ }
+ },
+ "@alifd/next": {
+ "version": "1.19.31",
+ "resolved": "https://registry.npm.taobao.org/@alifd/next/download/@alifd/next-1.19.31.tgz",
+ "integrity": "sha1-5DFSQ3UK/28KWZUOcvneDS/NblQ=",
+ "requires": {
+ "@alifd/field": "~1.3.3",
+ "@alifd/validate": "~1.1.4",
+ "babel-runtime": "^6.26.0",
+ "classnames": "^2.2.3",
+ "hoist-non-react-statics": "^2.1.0",
+ "prop-types": "^15.6.0",
+ "react-lifecycles-compat": "^3.0.4",
+ "react-transition-group": "^2.2.1",
+ "shallow-element-equals": "^1.0.1"
+ }
+ },
+ "@alifd/validate": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npm.taobao.org/@alifd/validate/download/@alifd/validate-1.1.5.tgz",
+ "integrity": "sha1-5EiWeFBRGCy5TbfsKzOpm0yGlDo="
+ }
+ }
+ },
+ "@alifd/validate": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npm.taobao.org/@alifd/validate/download/@alifd/validate-1.2.0.tgz",
+ "integrity": "sha1-JS4K3STmTv1U/mEbqMZtAUfYUPY="
+ },
+ "@babel/code-frame": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.10.4.tgz",
+ "integrity": "sha1-Fo2ho26Q2miujUnA8bSMfGJJITo=",
+ "dev": true,
+ "requires": {
+ "@babel/highlight": "^7.10.4"
+ }
+ },
+ "@babel/compat-data": {
+ "version": "7.12.5",
+ "resolved": "https://registry.npm.taobao.org/@babel/compat-data/download/@babel/compat-data-7.12.5.tgz?cache=0&sync_timestamp=1604441103552&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcompat-data%2Fdownload%2F%40babel%2Fcompat-data-7.12.5.tgz",
+ "integrity": "sha1-9W2wxLsbu/IhtOgTRaq0FB58sOk=",
+ "dev": true
+ },
+ "@babel/core": {
+ "version": "7.12.3",
+ "resolved": "https://registry.npm.taobao.org/@babel/core/download/@babel/core-7.12.3.tgz",
+ "integrity": "sha1-G0NohOHjv/b7EyjcArIIdZ3pKtg=",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.10.4",
+ "@babel/generator": "^7.12.1",
+ "@babel/helper-module-transforms": "^7.12.1",
+ "@babel/helpers": "^7.12.1",
+ "@babel/parser": "^7.12.3",
+ "@babel/template": "^7.10.4",
+ "@babel/traverse": "^7.12.1",
+ "@babel/types": "^7.12.1",
+ "convert-source-map": "^1.7.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.1",
+ "json5": "^2.1.2",
+ "lodash": "^4.17.19",
+ "resolve": "^1.3.2",
+ "semver": "^5.4.1",
+ "source-map": "^0.5.0"
+ },
+ "dependencies": {
+ "json5": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npm.taobao.org/json5/download/json5-2.1.3.tgz",
+ "integrity": "sha1-ybD3+pIzv+WAf+ZvzzpWF+1ZfUM=",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.5"
+ }
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz",
+ "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=",
+ "dev": true
+ }
+ }
+ },
+ "@babel/generator": {
+ "version": "7.12.5",
+ "resolved": "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.12.5.tgz?cache=0&sync_timestamp=1604441076223&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.12.5.tgz",
+ "integrity": "sha1-osUN5ci21wirlb5eYFOTbBiEpN4=",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.12.5",
+ "jsesc": "^2.5.1",
+ "source-map": "^0.5.0"
+ }
+ },
+ "@babel/helper-annotate-as-pure": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.10.4.tgz?cache=0&sync_timestamp=1593522826156&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.10.4.tgz",
+ "integrity": "sha1-W/DUlaP3V6w72ki1vzs7ownHK6M=",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.10.4"
+ }
+ },
+ "@babel/helper-builder-binary-assignment-operator-visitor": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-builder-binary-assignment-operator-visitor/download/@babel/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz",
+ "integrity": "sha1-uwt18xv5jL+f8UPBrleLhydK4aM=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-explode-assignable-expression": "^7.10.4",
+ "@babel/types": "^7.10.4"
+ }
+ },
+ "@babel/helper-builder-react-jsx": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-builder-react-jsx/download/@babel/helper-builder-react-jsx-7.10.4.tgz?cache=0&sync_timestamp=1593522969703&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-builder-react-jsx%2Fdownload%2F%40babel%2Fhelper-builder-react-jsx-7.10.4.tgz",
+ "integrity": "sha1-gJXN2/+Fjm+pwyba7lSi8nMsHV0=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.10.4",
+ "@babel/types": "^7.10.4"
+ }
+ },
+ "@babel/helper-builder-react-jsx-experimental": {
+ "version": "7.12.4",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-builder-react-jsx-experimental/download/@babel/helper-builder-react-jsx-experimental-7.12.4.tgz",
+ "integrity": "sha1-VfwerVJCyqDKKHXcuO7W0xHlD0g=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.10.4",
+ "@babel/helper-module-imports": "^7.12.1",
+ "@babel/types": "^7.12.1"
+ }
+ },
+ "@babel/helper-compilation-targets": {
+ "version": "7.12.5",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-compilation-targets/download/@babel/helper-compilation-targets-7.12.5.tgz?cache=0&sync_timestamp=1604441105017&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-compilation-targets%2Fdownload%2F%40babel%2Fhelper-compilation-targets-7.12.5.tgz",
+ "integrity": "sha1-y0cMdhmNtqJOnbyJhydWMeXSmDE=",
+ "dev": true,
+ "requires": {
+ "@babel/compat-data": "^7.12.5",
+ "@babel/helper-validator-option": "^7.12.1",
+ "browserslist": "^4.14.5",
+ "semver": "^5.5.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz",
+ "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=",
+ "dev": true
+ }
+ }
+ },
+ "@babel/helper-create-class-features-plugin": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-create-class-features-plugin/download/@babel/helper-create-class-features-plugin-7.12.1.tgz?cache=0&sync_timestamp=1602802060378&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-class-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-class-features-plugin-7.12.1.tgz",
+ "integrity": "sha1-PEWZj0Me3UqSFMXx060USKYTf24=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-function-name": "^7.10.4",
+ "@babel/helper-member-expression-to-functions": "^7.12.1",
+ "@babel/helper-optimise-call-expression": "^7.10.4",
+ "@babel/helper-replace-supers": "^7.12.1",
+ "@babel/helper-split-export-declaration": "^7.10.4"
+ }
+ },
+ "@babel/helper-create-regexp-features-plugin": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-create-regexp-features-plugin/download/@babel/helper-create-regexp-features-plugin-7.12.1.tgz?cache=0&sync_timestamp=1602800231050&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-regexp-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-regexp-features-plugin-7.12.1.tgz",
+ "integrity": "sha1-GLEwLUZ3+dxHQP6MntlmgOKdN+g=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.10.4",
+ "@babel/helper-regex": "^7.10.4",
+ "regexpu-core": "^4.7.1"
+ }
+ },
+ "@babel/helper-define-map": {
+ "version": "7.10.5",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-define-map/download/@babel/helper-define-map-7.10.5.tgz",
+ "integrity": "sha1-tTwQ23imQIABUmkrEzkxR6y5uzA=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-function-name": "^7.10.4",
+ "@babel/types": "^7.10.5",
+ "lodash": "^4.17.19"
+ }
+ },
+ "@babel/helper-explode-assignable-expression": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-explode-assignable-expression/download/@babel/helper-explode-assignable-expression-7.12.1.tgz?cache=0&sync_timestamp=1602800239433&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-explode-assignable-expression%2Fdownload%2F%40babel%2Fhelper-explode-assignable-expression-7.12.1.tgz",
+ "integrity": "sha1-gAakZmlcSthqKl8vsVtfLDGtVjM=",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.12.1"
+ }
+ },
+ "@babel/helper-function-name": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.10.4.tgz?cache=0&sync_timestamp=1593522836308&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.10.4.tgz",
+ "integrity": "sha1-0tOyDFmtjEcRL6fSqUvAnV74Lxo=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-get-function-arity": "^7.10.4",
+ "@babel/template": "^7.10.4",
+ "@babel/types": "^7.10.4"
+ }
+ },
+ "@babel/helper-get-function-arity": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.10.4.tgz?cache=0&sync_timestamp=1593522827189&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.10.4.tgz",
+ "integrity": "sha1-mMHL6g4jMvM/mkZhuM4VBbLBm6I=",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.10.4"
+ }
+ },
+ "@babel/helper-hoist-variables": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.10.4.tgz?cache=0&sync_timestamp=1593522826778&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-hoist-variables%2Fdownload%2F%40babel%2Fhelper-hoist-variables-7.10.4.tgz",
+ "integrity": "sha1-1JsAHR1aaMpeZgTdoBpil/fJOB4=",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.10.4"
+ }
+ },
+ "@babel/helper-member-expression-to-functions": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.12.1.tgz?cache=0&sync_timestamp=1602800239601&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-member-expression-to-functions%2Fdownload%2F%40babel%2Fhelper-member-expression-to-functions-7.12.1.tgz",
+ "integrity": "sha1-+6Dy/P8/ugDm7LZku15uJuLWFlw=",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.12.1"
+ }
+ },
+ "@babel/helper-module-imports": {
+ "version": "7.12.5",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-module-imports/download/@babel/helper-module-imports-7.12.5.tgz?cache=0&sync_timestamp=1604441076449&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-imports%2Fdownload%2F%40babel%2Fhelper-module-imports-7.12.5.tgz",
+ "integrity": "sha1-G/wCKfeUmI927QpNTpCGCFC1Tfs=",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.12.5"
+ }
+ },
+ "@babel/helper-module-transforms": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.12.1.tgz?cache=0&sync_timestamp=1602802059560&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-transforms%2Fdownload%2F%40babel%2Fhelper-module-transforms-7.12.1.tgz",
+ "integrity": "sha1-eVT+xx9bMsSOSzA7Q3w0RT/XJHw=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-imports": "^7.12.1",
+ "@babel/helper-replace-supers": "^7.12.1",
+ "@babel/helper-simple-access": "^7.12.1",
+ "@babel/helper-split-export-declaration": "^7.11.0",
+ "@babel/helper-validator-identifier": "^7.10.4",
+ "@babel/template": "^7.10.4",
+ "@babel/traverse": "^7.12.1",
+ "@babel/types": "^7.12.1",
+ "lodash": "^4.17.19"
+ }
+ },
+ "@babel/helper-optimise-call-expression": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.10.4.tgz?cache=0&sync_timestamp=1593522827576&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-optimise-call-expression%2Fdownload%2F%40babel%2Fhelper-optimise-call-expression-7.10.4.tgz",
+ "integrity": "sha1-UNyWQT1ZT5lad5BZBbBYk813lnM=",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.10.4"
+ }
+ },
+ "@babel/helper-plugin-utils": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521148758&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz",
+ "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=",
+ "dev": true
+ },
+ "@babel/helper-regex": {
+ "version": "7.10.5",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-regex/download/@babel/helper-regex-7.10.5.tgz?cache=0&sync_timestamp=1594751535064&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-regex%2Fdownload%2F%40babel%2Fhelper-regex-7.10.5.tgz",
+ "integrity": "sha1-Mt+7eYmQc8QVVXBToZvQVarlCuA=",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.19"
+ }
+ },
+ "@babel/helper-remap-async-to-generator": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-remap-async-to-generator/download/@babel/helper-remap-async-to-generator-7.12.1.tgz?cache=0&sync_timestamp=1602800240049&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-remap-async-to-generator%2Fdownload%2F%40babel%2Fhelper-remap-async-to-generator-7.12.1.tgz",
+ "integrity": "sha1-jE27+RYxT2BH3AXmoiFwdCODR/0=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.10.4",
+ "@babel/helper-wrap-function": "^7.10.4",
+ "@babel/types": "^7.12.1"
+ }
+ },
+ "@babel/helper-replace-supers": {
+ "version": "7.12.5",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.12.5.tgz",
+ "integrity": "sha1-8AmhdUO7u84WsGIGrnO2PT/KaNk=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-member-expression-to-functions": "^7.12.1",
+ "@babel/helper-optimise-call-expression": "^7.10.4",
+ "@babel/traverse": "^7.12.5",
+ "@babel/types": "^7.12.5"
+ }
+ },
+ "@babel/helper-simple-access": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-simple-access/download/@babel/helper-simple-access-7.12.1.tgz?cache=0&sync_timestamp=1602802050087&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-simple-access%2Fdownload%2F%40babel%2Fhelper-simple-access-7.12.1.tgz",
+ "integrity": "sha1-MkJ+WqYVR9OOsebq9f0UJv2tkTY=",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.12.1"
+ }
+ },
+ "@babel/helper-skip-transparent-expression-wrappers": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-skip-transparent-expression-wrappers/download/@babel/helper-skip-transparent-expression-wrappers-7.12.1.tgz",
+ "integrity": "sha1-Ri3GOn5DWt6EaDhcY9K4TM5LPL8=",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.12.1"
+ }
+ },
+ "@babel/helper-split-export-declaration": {
+ "version": "7.11.0",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.11.0.tgz?cache=0&sync_timestamp=1596144786980&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.11.0.tgz",
+ "integrity": "sha1-+KSRJErPamdhWKxCBykRuoOtCZ8=",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.11.0"
+ }
+ },
+ "@babel/helper-validator-identifier": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.10.4.tgz",
+ "integrity": "sha1-p4x6clHgH2FlEtMbEK3PUq2l4NI=",
+ "dev": true
+ },
+ "@babel/helper-validator-option": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-validator-option/download/@babel/helper-validator-option-7.12.1.tgz?cache=0&sync_timestamp=1602801773085&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-option%2Fdownload%2F%40babel%2Fhelper-validator-option-7.12.1.tgz",
+ "integrity": "sha1-F1VnOAw+d9YP+YpUuwFf548heNk=",
+ "dev": true
+ },
+ "@babel/helper-wrap-function": {
+ "version": "7.12.3",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-wrap-function/download/@babel/helper-wrap-function-7.12.3.tgz",
+ "integrity": "sha1-MzIzn8TR+78cJ9eVjCfTRwjpkNk=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-function-name": "^7.10.4",
+ "@babel/template": "^7.10.4",
+ "@babel/traverse": "^7.10.4",
+ "@babel/types": "^7.10.4"
+ }
+ },
+ "@babel/helpers": {
+ "version": "7.12.5",
+ "resolved": "https://registry.npm.taobao.org/@babel/helpers/download/@babel/helpers-7.12.5.tgz",
+ "integrity": "sha1-Ghukp2jZtYMQ7aUWxEmRP+ZHEW4=",
+ "dev": true,
+ "requires": {
+ "@babel/template": "^7.10.4",
+ "@babel/traverse": "^7.12.5",
+ "@babel/types": "^7.12.5"
+ }
+ },
+ "@babel/highlight": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.10.4.tgz?cache=0&sync_timestamp=1593522818552&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.10.4.tgz",
+ "integrity": "sha1-fRvf1ldTU4+r5sOFls23bZrGAUM=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.10.4",
+ "chalk": "^2.0.0",
+ "js-tokens": "^4.0.0"
+ }
+ },
+ "@babel/parser": {
+ "version": "7.12.5",
+ "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.12.5.tgz?cache=0&sync_timestamp=1604441237314&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.12.5.tgz",
+ "integrity": "sha1-tK8y3dRzwL+mQ71/8HKLjnG4HqA=",
+ "dev": true
+ },
+ "@babel/plugin-proposal-async-generator-functions": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-async-generator-functions/download/@babel/plugin-proposal-async-generator-functions-7.12.1.tgz?cache=0&sync_timestamp=1602800241810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-async-generator-functions%2Fdownload%2F%40babel%2Fplugin-proposal-async-generator-functions-7.12.1.tgz",
+ "integrity": "sha1-3GwRcOJ9isqZ/2X0klvQaxyQVQ4=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/helper-remap-async-to-generator": "^7.12.1",
+ "@babel/plugin-syntax-async-generators": "^7.8.0"
+ }
+ },
+ "@babel/plugin-proposal-class-properties": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-class-properties/download/@babel/plugin-proposal-class-properties-7.12.1.tgz?cache=0&sync_timestamp=1602802062562&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-class-properties%2Fdownload%2F%40babel%2Fplugin-proposal-class-properties-7.12.1.tgz",
+ "integrity": "sha1-oIL/VB8qKaSCEGW4rdk0bAwW5d4=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-create-class-features-plugin": "^7.12.1",
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-proposal-decorators": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-decorators/download/@babel/plugin-proposal-decorators-7.12.1.tgz?cache=0&sync_timestamp=1602800229034&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-decorators%2Fdownload%2F%40babel%2Fplugin-proposal-decorators-7.12.1.tgz",
+ "integrity": "sha1-WScUOf7UFFRWxBBnRQVDruMy0V8=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-create-class-features-plugin": "^7.12.1",
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-syntax-decorators": "^7.12.1"
+ }
+ },
+ "@babel/plugin-proposal-do-expressions": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-do-expressions/download/@babel/plugin-proposal-do-expressions-7.12.1.tgz?cache=0&sync_timestamp=1602806865634&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-do-expressions%2Fdownload%2F%40babel%2Fplugin-proposal-do-expressions-7.12.1.tgz",
+ "integrity": "sha1-jX8bxTLYFoFHVVwm49uSLMDf0vg=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-syntax-do-expressions": "^7.12.1"
+ }
+ },
+ "@babel/plugin-proposal-dynamic-import": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-dynamic-import/download/@babel/plugin-proposal-dynamic-import-7.12.1.tgz?cache=0&sync_timestamp=1602800231856&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-dynamic-import%2Fdownload%2F%40babel%2Fplugin-proposal-dynamic-import-7.12.1.tgz",
+ "integrity": "sha1-Q+tcKjSH7NmMXI6otf22midJstw=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-syntax-dynamic-import": "^7.8.0"
+ }
+ },
+ "@babel/plugin-proposal-export-default-from": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-export-default-from/download/@babel/plugin-proposal-export-default-from-7.12.1.tgz?cache=0&sync_timestamp=1602806866408&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-export-default-from%2Fdownload%2F%40babel%2Fplugin-proposal-export-default-from-7.12.1.tgz",
+ "integrity": "sha1-xuYtZoqKvP4NKLgvVgOV/sthHFo=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-syntax-export-default-from": "^7.12.1"
+ }
+ },
+ "@babel/plugin-proposal-export-namespace-from": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-export-namespace-from/download/@babel/plugin-proposal-export-namespace-from-7.12.1.tgz?cache=0&sync_timestamp=1602801775633&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-export-namespace-from%2Fdownload%2F%40babel%2Fplugin-proposal-export-namespace-from-7.12.1.tgz",
+ "integrity": "sha1-i5uPN2stiPXdd05NJKXMLjZ5ttQ=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-syntax-export-namespace-from": "^7.8.3"
+ }
+ },
+ "@babel/plugin-proposal-function-bind": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-function-bind/download/@babel/plugin-proposal-function-bind-7.12.1.tgz?cache=0&sync_timestamp=1602806866031&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-function-bind%2Fdownload%2F%40babel%2Fplugin-proposal-function-bind-7.12.1.tgz",
+ "integrity": "sha1-i4kbQS/7yOj/P9TfZ7jUu+WUcAQ=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-syntax-function-bind": "^7.12.1"
+ }
+ },
+ "@babel/plugin-proposal-function-sent": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-function-sent/download/@babel/plugin-proposal-function-sent-7.12.1.tgz",
+ "integrity": "sha1-jzAqqKtfAK9slKPhEI+jXRUxlRA=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/helper-wrap-function": "^7.10.4",
+ "@babel/plugin-syntax-function-sent": "^7.12.1"
+ }
+ },
+ "@babel/plugin-proposal-json-strings": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-json-strings/download/@babel/plugin-proposal-json-strings-7.12.1.tgz?cache=0&sync_timestamp=1602800231781&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-json-strings%2Fdownload%2F%40babel%2Fplugin-proposal-json-strings-7.12.1.tgz",
+ "integrity": "sha1-1FQjtRdxTu3VYhqd/cA/qfTrJBw=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-syntax-json-strings": "^7.8.0"
+ }
+ },
+ "@babel/plugin-proposal-logical-assignment-operators": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-logical-assignment-operators/download/@babel/plugin-proposal-logical-assignment-operators-7.12.1.tgz?cache=0&sync_timestamp=1602801777850&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-logical-assignment-operators%2Fdownload%2F%40babel%2Fplugin-proposal-logical-assignment-operators-7.12.1.tgz",
+ "integrity": "sha1-8sSQ024bPJZZJBA0pdLNUCY6J1E=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
+ }
+ },
+ "@babel/plugin-proposal-nullish-coalescing-operator": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-nullish-coalescing-operator/download/@babel/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz?cache=0&sync_timestamp=1602800231580&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator-7.12.1.tgz",
+ "integrity": "sha1-PtT/8xwBXn8/FGfxkNvlRc17BGw=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0"
+ }
+ },
+ "@babel/plugin-proposal-numeric-separator": {
+ "version": "7.12.5",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-numeric-separator/download/@babel/plugin-proposal-numeric-separator-7.12.5.tgz?cache=0&sync_timestamp=1604441516252&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-numeric-separator%2Fdownload%2F%40babel%2Fplugin-proposal-numeric-separator-7.12.5.tgz",
+ "integrity": "sha1-sc51cVbUDtedWdRnyysVSlxBSbo=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-syntax-numeric-separator": "^7.10.4"
+ }
+ },
+ "@babel/plugin-proposal-object-rest-spread": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-object-rest-spread/download/@babel/plugin-proposal-object-rest-spread-7.12.1.tgz?cache=0&sync_timestamp=1602800240952&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-proposal-object-rest-spread-7.12.1.tgz",
+ "integrity": "sha1-3vm9A86g+bcig9rA7CLSicdpEGk=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.0",
+ "@babel/plugin-transform-parameters": "^7.12.1"
+ }
+ },
+ "@babel/plugin-proposal-optional-catch-binding": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-optional-catch-binding/download/@babel/plugin-proposal-optional-catch-binding-7.12.1.tgz?cache=0&sync_timestamp=1602800232182&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-proposal-optional-catch-binding-7.12.1.tgz",
+ "integrity": "sha1-zMJCGvZNOq5QtVinHO3pKaWrKUI=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.0"
+ }
+ },
+ "@babel/plugin-proposal-optional-chaining": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-optional-chaining/download/@babel/plugin-proposal-optional-chaining-7.12.1.tgz?cache=0&sync_timestamp=1602800241914&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-chaining%2Fdownload%2F%40babel%2Fplugin-proposal-optional-chaining-7.12.1.tgz",
+ "integrity": "sha1-zOEiID/IoyeUKW/Dd8be2vQ2N5c=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.0"
+ }
+ },
+ "@babel/plugin-proposal-pipeline-operator": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-pipeline-operator/download/@babel/plugin-proposal-pipeline-operator-7.12.1.tgz?cache=0&sync_timestamp=1602806869343&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-pipeline-operator%2Fdownload%2F%40babel%2Fplugin-proposal-pipeline-operator-7.12.1.tgz",
+ "integrity": "sha1-S9N3vH5b6S8i8cCLPzljY2vY9KE=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-syntax-pipeline-operator": "^7.12.1"
+ }
+ },
+ "@babel/plugin-proposal-private-methods": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-private-methods/download/@babel/plugin-proposal-private-methods-7.12.1.tgz?cache=0&sync_timestamp=1602802060750&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-private-methods%2Fdownload%2F%40babel%2Fplugin-proposal-private-methods-7.12.1.tgz",
+ "integrity": "sha1-hoFPbnohN0yYDBDTi0ST5wP0o4k=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-create-class-features-plugin": "^7.12.1",
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-proposal-throw-expressions": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-throw-expressions/download/@babel/plugin-proposal-throw-expressions-7.12.1.tgz",
+ "integrity": "sha1-Wt9KvH80mi2lMuZjs2JR9gF8Qnk=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-syntax-throw-expressions": "^7.12.1"
+ }
+ },
+ "@babel/plugin-proposal-unicode-property-regex": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-unicode-property-regex/download/@babel/plugin-proposal-unicode-property-regex-7.12.1.tgz?cache=0&sync_timestamp=1602800241079&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-unicode-property-regex%2Fdownload%2F%40babel%2Fplugin-proposal-unicode-property-regex-7.12.1.tgz",
+ "integrity": "sha1-Khg5WNQXdluerjNPR3WOXWqC4HI=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-create-regexp-features-plugin": "^7.12.1",
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-syntax-async-generators": {
+ "version": "7.8.4",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-async-generators/download/@babel/plugin-syntax-async-generators-7.8.4.tgz",
+ "integrity": "sha1-qYP7Gusuw/btBCohD2QOkOeG/g0=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-bigint": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-bigint/download/@babel/plugin-syntax-bigint-7.8.3.tgz",
+ "integrity": "sha1-TJpvZp9dDN8bkKFnHpoUa+UwDOo=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-class-properties": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-class-properties/download/@babel/plugin-syntax-class-properties-7.12.1.tgz?cache=0&sync_timestamp=1602800231971&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-class-properties%2Fdownload%2F%40babel%2Fplugin-syntax-class-properties-7.12.1.tgz",
+ "integrity": "sha1-vLKXxTZueb663vUJVJzZOwTxmXg=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-syntax-decorators": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-decorators/download/@babel/plugin-syntax-decorators-7.12.1.tgz?cache=0&sync_timestamp=1602800232071&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-decorators%2Fdownload%2F%40babel%2Fplugin-syntax-decorators-7.12.1.tgz",
+ "integrity": "sha1-gai1NbKER2xBvm3gaFOogCuYxd0=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-syntax-do-expressions": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-do-expressions/download/@babel/plugin-syntax-do-expressions-7.12.1.tgz?cache=0&sync_timestamp=1602806852526&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-do-expressions%2Fdownload%2F%40babel%2Fplugin-syntax-do-expressions-7.12.1.tgz",
+ "integrity": "sha1-a4Pfq3lUC2aRK1WYYM5tS+T32WA=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-syntax-dynamic-import": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-dynamic-import/download/@babel/plugin-syntax-dynamic-import-7.8.3.tgz",
+ "integrity": "sha1-Yr+Ysto80h1iYVT8lu5bPLaOrLM=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-export-default-from": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-export-default-from/download/@babel/plugin-syntax-export-default-from-7.12.1.tgz?cache=0&sync_timestamp=1602806852333&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-export-default-from%2Fdownload%2F%40babel%2Fplugin-syntax-export-default-from-7.12.1.tgz",
+ "integrity": "sha1-qesxiB9PmhEVo9LG1krD9gFrWp0=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-syntax-export-namespace-from": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-export-namespace-from/download/@babel/plugin-syntax-export-namespace-from-7.8.3.tgz",
+ "integrity": "sha1-AolkqbqA28CUyRXEh618TnpmRlo=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.3"
+ }
+ },
+ "@babel/plugin-syntax-flow": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-flow/download/@babel/plugin-syntax-flow-7.12.1.tgz",
+ "integrity": "sha1-p3Zw2avm1j6Kyt9MMbsetaUGu90=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-syntax-function-bind": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-function-bind/download/@babel/plugin-syntax-function-bind-7.12.1.tgz?cache=0&sync_timestamp=1602806852726&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-function-bind%2Fdownload%2F%40babel%2Fplugin-syntax-function-bind-7.12.1.tgz",
+ "integrity": "sha1-HhXaPlaMltq+IVefLWaCHbmKr8w=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-syntax-function-sent": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-function-sent/download/@babel/plugin-syntax-function-sent-7.12.1.tgz",
+ "integrity": "sha1-tTVTBPCw+wyxvzFZA7980TYI6BE=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-syntax-import-meta": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-import-meta/download/@babel/plugin-syntax-import-meta-7.10.4.tgz",
+ "integrity": "sha1-7mATSMNw+jNNIge+FYd3SWUh/VE=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-syntax-json-strings": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-json-strings/download/@babel/plugin-syntax-json-strings-7.8.3.tgz",
+ "integrity": "sha1-AcohtmjNghjJ5kDLbdiMVBKyyWo=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-jsx": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-jsx/download/@babel/plugin-syntax-jsx-7.12.1.tgz?cache=0&sync_timestamp=1602800233054&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-jsx%2Fdownload%2F%40babel%2Fplugin-syntax-jsx-7.12.1.tgz",
+ "integrity": "sha1-nZ01fMgYqnrnk1kXwSV/Z2d6CSY=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-syntax-logical-assignment-operators": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-logical-assignment-operators/download/@babel/plugin-syntax-logical-assignment-operators-7.10.4.tgz?cache=0&sync_timestamp=1593522961558&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-logical-assignment-operators%2Fdownload%2F%40babel%2Fplugin-syntax-logical-assignment-operators-7.10.4.tgz",
+ "integrity": "sha1-ypHvRjA1MESLkGZSusLp/plB9pk=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-syntax-nullish-coalescing-operator": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-nullish-coalescing-operator/download/@babel/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
+ "integrity": "sha1-Fn7XA2iIYIH3S1w2xlqIwDtm0ak=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-numeric-separator": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-numeric-separator/download/@babel/plugin-syntax-numeric-separator-7.10.4.tgz?cache=0&sync_timestamp=1593521806492&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-numeric-separator%2Fdownload%2F%40babel%2Fplugin-syntax-numeric-separator-7.10.4.tgz",
+ "integrity": "sha1-ubBws+M1cM2f0Hun+pHA3Te5r5c=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-syntax-object-rest-spread": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-object-rest-spread/download/@babel/plugin-syntax-object-rest-spread-7.8.3.tgz",
+ "integrity": "sha1-YOIl7cvZimQDMqLnLdPmbxr1WHE=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-optional-catch-binding": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-optional-catch-binding/download/@babel/plugin-syntax-optional-catch-binding-7.8.3.tgz",
+ "integrity": "sha1-YRGiZbz7Ag6579D9/X0mQCue1sE=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-optional-chaining": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-optional-chaining/download/@babel/plugin-syntax-optional-chaining-7.8.3.tgz",
+ "integrity": "sha1-T2nCq5UWfgGAzVM2YT+MV4j31Io=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-pipeline-operator": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-pipeline-operator/download/@babel/plugin-syntax-pipeline-operator-7.12.1.tgz?cache=0&sync_timestamp=1602806853081&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-pipeline-operator%2Fdownload%2F%40babel%2Fplugin-syntax-pipeline-operator-7.12.1.tgz",
+ "integrity": "sha1-YYbx1f64bTFakgpQVqhsmRv0t/Q=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-syntax-throw-expressions": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-throw-expressions/download/@babel/plugin-syntax-throw-expressions-7.12.1.tgz",
+ "integrity": "sha1-/5ClesWZumhamSdMhmBNh4yUUJQ=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-syntax-top-level-await": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-top-level-await/download/@babel/plugin-syntax-top-level-await-7.12.1.tgz?cache=0&sync_timestamp=1602800233145&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-top-level-await%2Fdownload%2F%40babel%2Fplugin-syntax-top-level-await-7.12.1.tgz",
+ "integrity": "sha1-3WwLNXrBuxQtmFN0UKMZYl0T0qA=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-syntax-typescript": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-typescript/download/@babel/plugin-syntax-typescript-7.12.1.tgz",
+ "integrity": "sha1-Rgup13B3ZTgDw90uZz921mtAKeU=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-arrow-functions": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-arrow-functions/download/@babel/plugin-transform-arrow-functions-7.12.1.tgz?cache=0&sync_timestamp=1602800233566&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-arrow-functions%2Fdownload%2F%40babel%2Fplugin-transform-arrow-functions-7.12.1.tgz",
+ "integrity": "sha1-gIP/yGrI53f74ktZZ8SyUh88srM=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-async-to-generator": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-async-to-generator/download/@babel/plugin-transform-async-to-generator-7.12.1.tgz?cache=0&sync_timestamp=1602800242155&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-async-to-generator%2Fdownload%2F%40babel%2Fplugin-transform-async-to-generator-7.12.1.tgz",
+ "integrity": "sha1-OEmknMKiLpdDy9a1KSbTAzcimvE=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-imports": "^7.12.1",
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/helper-remap-async-to-generator": "^7.12.1"
+ }
+ },
+ "@babel/plugin-transform-block-scoped-functions": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoped-functions/download/@babel/plugin-transform-block-scoped-functions-7.12.1.tgz?cache=0&sync_timestamp=1602800233803&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-block-scoped-functions%2Fdownload%2F%40babel%2Fplugin-transform-block-scoped-functions-7.12.1.tgz",
+ "integrity": "sha1-8qGjZb3itxEuCm3tkGf918B5Bdk=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-block-scoping": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoping/download/@babel/plugin-transform-block-scoping-7.12.1.tgz?cache=0&sync_timestamp=1602800233459&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-block-scoping%2Fdownload%2F%40babel%2Fplugin-transform-block-scoping-7.12.1.tgz",
+ "integrity": "sha1-8O5yeHS0KiCKSKWGuEw9IiwrvvE=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-classes": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-classes/download/@babel/plugin-transform-classes-7.12.1.tgz?cache=0&sync_timestamp=1602802059995&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-classes%2Fdownload%2F%40babel%2Fplugin-transform-classes-7.12.1.tgz",
+ "integrity": "sha1-ZeZQ/K3dPYjdzmfA+DSj1DajLbY=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.10.4",
+ "@babel/helper-define-map": "^7.10.4",
+ "@babel/helper-function-name": "^7.10.4",
+ "@babel/helper-optimise-call-expression": "^7.10.4",
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/helper-replace-supers": "^7.12.1",
+ "@babel/helper-split-export-declaration": "^7.10.4",
+ "globals": "^11.1.0"
+ }
+ },
+ "@babel/plugin-transform-computed-properties": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-computed-properties/download/@babel/plugin-transform-computed-properties-7.12.1.tgz?cache=0&sync_timestamp=1602800233906&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-computed-properties%2Fdownload%2F%40babel%2Fplugin-transform-computed-properties-7.12.1.tgz",
+ "integrity": "sha1-1oz2ybf4OKikFEutvpdUHqCQSFI=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-destructuring": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-destructuring/download/@babel/plugin-transform-destructuring-7.12.1.tgz?cache=0&sync_timestamp=1602800233701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-destructuring%2Fdownload%2F%40babel%2Fplugin-transform-destructuring-7.12.1.tgz",
+ "integrity": "sha1-uaVw/g0KjUYBFkE8tPl+jgiy+Ec=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-dotall-regex": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-dotall-regex/download/@babel/plugin-transform-dotall-regex-7.12.1.tgz?cache=0&sync_timestamp=1602800241190&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-dotall-regex%2Fdownload%2F%40babel%2Fplugin-transform-dotall-regex-7.12.1.tgz",
+ "integrity": "sha1-odFsFIYoF7ZAnApnjW+Tc8qc2XU=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-create-regexp-features-plugin": "^7.12.1",
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-duplicate-keys": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-duplicate-keys/download/@babel/plugin-transform-duplicate-keys-7.12.1.tgz?cache=0&sync_timestamp=1602800235384&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-duplicate-keys%2Fdownload%2F%40babel%2Fplugin-transform-duplicate-keys-7.12.1.tgz",
+ "integrity": "sha1-dFZhuropWsBuaGgieXpp+6osoig=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-exponentiation-operator": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-exponentiation-operator/download/@babel/plugin-transform-exponentiation-operator-7.12.1.tgz?cache=0&sync_timestamp=1602800235495&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-exponentiation-operator%2Fdownload%2F%40babel%2Fplugin-transform-exponentiation-operator-7.12.1.tgz",
+ "integrity": "sha1-sPLtNWuhvhQo7K8Sj/iiTwKDCuA=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4",
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-flow-strip-types": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-flow-strip-types/download/@babel/plugin-transform-flow-strip-types-7.12.1.tgz",
+ "integrity": "sha1-hDDez6frKupUFO1KP6bhZSt9d8Q=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-syntax-flow": "^7.12.1"
+ }
+ },
+ "@babel/plugin-transform-for-of": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-for-of/download/@babel/plugin-transform-for-of-7.12.1.tgz?cache=0&sync_timestamp=1602800234012&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-for-of%2Fdownload%2F%40babel%2Fplugin-transform-for-of-7.12.1.tgz",
+ "integrity": "sha1-B2QPKIZ+0W+VEcmciIKR9WCSHPo=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-function-name": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-function-name/download/@babel/plugin-transform-function-name-7.12.1.tgz?cache=0&sync_timestamp=1602800234134&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-function-name%2Fdownload%2F%40babel%2Fplugin-transform-function-name-7.12.1.tgz",
+ "integrity": "sha1-LsdiWMcP4IxtfaFUADpIBiDrpmc=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-function-name": "^7.10.4",
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-literals": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-literals/download/@babel/plugin-transform-literals-7.12.1.tgz?cache=0&sync_timestamp=1602800235597&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-literals%2Fdownload%2F%40babel%2Fplugin-transform-literals-7.12.1.tgz",
+ "integrity": "sha1-1zuAOiazcBfd+dO7j03Fi/uAb1c=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-member-expression-literals": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-member-expression-literals/download/@babel/plugin-transform-member-expression-literals-7.12.1.tgz?cache=0&sync_timestamp=1602800235819&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-member-expression-literals%2Fdownload%2F%40babel%2Fplugin-transform-member-expression-literals-7.12.1.tgz",
+ "integrity": "sha1-SWA4YC2vFRSmTUPY4Xy7J1Xgw60=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-modules-amd": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-amd/download/@babel/plugin-transform-modules-amd-7.12.1.tgz?cache=0&sync_timestamp=1602802064278&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-amd%2Fdownload%2F%40babel%2Fplugin-transform-modules-amd-7.12.1.tgz",
+ "integrity": "sha1-MVQwCwJhhWZu67DA7X+EFf789vk=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-transforms": "^7.12.1",
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "babel-plugin-dynamic-import-node": "^2.3.3"
+ }
+ },
+ "@babel/plugin-transform-modules-commonjs": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-commonjs/download/@babel/plugin-transform-modules-commonjs-7.12.1.tgz?cache=0&sync_timestamp=1602802063892&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-commonjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-commonjs-7.12.1.tgz",
+ "integrity": "sha1-+kAxJFQmNseGz5tGCg/7tIqG5kg=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-transforms": "^7.12.1",
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/helper-simple-access": "^7.12.1",
+ "babel-plugin-dynamic-import-node": "^2.3.3"
+ }
+ },
+ "@babel/plugin-transform-modules-systemjs": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-systemjs/download/@babel/plugin-transform-modules-systemjs-7.12.1.tgz?cache=0&sync_timestamp=1602802063412&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-systemjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-systemjs-7.12.1.tgz",
+ "integrity": "sha1-Zj/qYg1ZPJPyFKRkzTmb9txoMIY=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-hoist-variables": "^7.10.4",
+ "@babel/helper-module-transforms": "^7.12.1",
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/helper-validator-identifier": "^7.10.4",
+ "babel-plugin-dynamic-import-node": "^2.3.3"
+ }
+ },
+ "@babel/plugin-transform-modules-umd": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-umd/download/@babel/plugin-transform-modules-umd-7.12.1.tgz?cache=0&sync_timestamp=1602802064711&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-umd%2Fdownload%2F%40babel%2Fplugin-transform-modules-umd-7.12.1.tgz",
+ "integrity": "sha1-61ohjWscaPPWIXuPosyC/sZUeQI=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-transforms": "^7.12.1",
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-named-capturing-groups-regex": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-named-capturing-groups-regex/download/@babel/plugin-transform-named-capturing-groups-regex-7.12.1.tgz?cache=0&sync_timestamp=1602800241290&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-named-capturing-groups-regex%2Fdownload%2F%40babel%2Fplugin-transform-named-capturing-groups-regex-7.12.1.tgz",
+ "integrity": "sha1-tAf1yWvg2fX4hGdJf6grMKw+h1M=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-create-regexp-features-plugin": "^7.12.1"
+ }
+ },
+ "@babel/plugin-transform-new-target": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-new-target/download/@babel/plugin-transform-new-target-7.12.1.tgz?cache=0&sync_timestamp=1602800235712&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-new-target%2Fdownload%2F%40babel%2Fplugin-transform-new-target-7.12.1.tgz",
+ "integrity": "sha1-gAc/Au4bstNlw0FkkOCFyVdZ3sA=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-object-super": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-object-super/download/@babel/plugin-transform-object-super-7.12.1.tgz?cache=0&sync_timestamp=1602802058628&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-object-super%2Fdownload%2F%40babel%2Fplugin-transform-object-super-7.12.1.tgz",
+ "integrity": "sha1-TqCGlrjS5lhB0MdwZIKwSL7RBm4=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/helper-replace-supers": "^7.12.1"
+ }
+ },
+ "@babel/plugin-transform-parameters": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-parameters/download/@babel/plugin-transform-parameters-7.12.1.tgz?cache=0&sync_timestamp=1602800236149&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-parameters%2Fdownload%2F%40babel%2Fplugin-transform-parameters-7.12.1.tgz",
+ "integrity": "sha1-0uljsDh3FlDJIu/1k3mclthTJV0=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-property-literals": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-property-literals/download/@babel/plugin-transform-property-literals-7.12.1.tgz?cache=0&sync_timestamp=1602800236036&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-property-literals%2Fdownload%2F%40babel%2Fplugin-transform-property-literals-7.12.1.tgz",
+ "integrity": "sha1-QbyBIA1zCrtEVquLP71VN7Wa3s0=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-react-display-name": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-react-display-name/download/@babel/plugin-transform-react-display-name-7.12.1.tgz",
+ "integrity": "sha1-HLzQw7HWZIxVN0oi/JtrflNBwA0=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-react-jsx": {
+ "version": "7.12.5",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-react-jsx/download/@babel/plugin-transform-react-jsx-7.12.5.tgz?cache=0&sync_timestamp=1604441239750&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-react-jsx%2Fdownload%2F%40babel%2Fplugin-transform-react-jsx-7.12.5.tgz",
+ "integrity": "sha1-Oe3g4wFZdwVhtpY74UPkCvO94Aw=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-builder-react-jsx": "^7.10.4",
+ "@babel/helper-builder-react-jsx-experimental": "^7.12.1",
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-syntax-jsx": "^7.12.1"
+ }
+ },
+ "@babel/plugin-transform-react-jsx-development": {
+ "version": "7.12.5",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-react-jsx-development/download/@babel/plugin-transform-react-jsx-development-7.12.5.tgz",
+ "integrity": "sha1-Z33luW2jEEMNbPt/7hahYDr6PVY=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-builder-react-jsx-experimental": "^7.12.1",
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-syntax-jsx": "^7.12.1"
+ }
+ },
+ "@babel/plugin-transform-react-jsx-self": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-react-jsx-self/download/@babel/plugin-transform-react-jsx-self-7.12.1.tgz",
+ "integrity": "sha1-70PLyioU8b0XgH2+Q3b/idcUzyg=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-react-jsx-source": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-react-jsx-source/download/@babel/plugin-transform-react-jsx-source-7.12.1.tgz",
+ "integrity": "sha1-0H3mhj9GjaCAntz3mhqoziqComs=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-react-pure-annotations": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-react-pure-annotations/download/@babel/plugin-transform-react-pure-annotations-7.12.1.tgz",
+ "integrity": "sha1-BdRvCrTRM5rFmt8goUYskbN6GkI=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.10.4",
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-regenerator": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-regenerator/download/@babel/plugin-transform-regenerator-7.12.1.tgz?cache=0&sync_timestamp=1602800236618&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-regenerator%2Fdownload%2F%40babel%2Fplugin-transform-regenerator-7.12.1.tgz",
+ "integrity": "sha1-Xwoo2EL2RiKB8GqWToi6jXq0l1M=",
+ "dev": true,
+ "requires": {
+ "regenerator-transform": "^0.14.2"
+ }
+ },
+ "@babel/plugin-transform-reserved-words": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-reserved-words/download/@babel/plugin-transform-reserved-words-7.12.1.tgz?cache=0&sync_timestamp=1602800236807&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-reserved-words%2Fdownload%2F%40babel%2Fplugin-transform-reserved-words-7.12.1.tgz",
+ "integrity": "sha1-b9/IzH7cxCs2p8EhiMZ4fIc63Ng=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-runtime": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-runtime/download/@babel/plugin-transform-runtime-7.12.1.tgz?cache=0&sync_timestamp=1602800227616&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-runtime%2Fdownload%2F%40babel%2Fplugin-transform-runtime-7.12.1.tgz",
+ "integrity": "sha1-BLeSBX60YDif9qQZjjd2FOoee6U=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-imports": "^7.12.1",
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "resolve": "^1.8.1",
+ "semver": "^5.5.1"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz",
+ "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=",
+ "dev": true
+ }
+ }
+ },
+ "@babel/plugin-transform-shorthand-properties": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-shorthand-properties/download/@babel/plugin-transform-shorthand-properties-7.12.1.tgz?cache=0&sync_timestamp=1602800237133&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-shorthand-properties%2Fdownload%2F%40babel%2Fplugin-transform-shorthand-properties-7.12.1.tgz",
+ "integrity": "sha1-C/nKxVUPzgz98ENCD2YdZF/cdeM=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-spread": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-spread/download/@babel/plugin-transform-spread-7.12.1.tgz?cache=0&sync_timestamp=1602800242265&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-spread%2Fdownload%2F%40babel%2Fplugin-transform-spread-7.12.1.tgz",
+ "integrity": "sha1-Un+fMRvk7H/cK3m7ife/iEs+Hh4=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1"
+ }
+ },
+ "@babel/plugin-transform-sticky-regex": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-sticky-regex/download/@babel/plugin-transform-sticky-regex-7.12.1.tgz?cache=0&sync_timestamp=1602800237248&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-sticky-regex%2Fdownload%2F%40babel%2Fplugin-transform-sticky-regex-7.12.1.tgz",
+ "integrity": "sha1-XCTPUN45bTDpmvyNHHAOi84PXK8=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/helper-regex": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-template-literals": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-template-literals/download/@babel/plugin-transform-template-literals-7.12.1.tgz?cache=0&sync_timestamp=1602800237453&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-template-literals%2Fdownload%2F%40babel%2Fplugin-transform-template-literals-7.12.1.tgz",
+ "integrity": "sha1-tD7ObtmnnAxxEZ9XbSme8J2UKEM=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-typeof-symbol": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-typeof-symbol/download/@babel/plugin-transform-typeof-symbol-7.12.1.tgz?cache=0&sync_timestamp=1602800237638&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-typeof-symbol%2Fdownload%2F%40babel%2Fplugin-transform-typeof-symbol-7.12.1.tgz",
+ "integrity": "sha1-nKa+ND1CUS+8LmgjaoKuZLx694o=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-typescript": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-typescript/download/@babel/plugin-transform-typescript-7.12.1.tgz?cache=0&sync_timestamp=1602802164420&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-typescript%2Fdownload%2F%40babel%2Fplugin-transform-typescript-7.12.1.tgz",
+ "integrity": "sha1-2SzAr1BNUQ4mp1Sn28LlyM2cerQ=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-create-class-features-plugin": "^7.12.1",
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-syntax-typescript": "^7.12.1"
+ }
+ },
+ "@babel/plugin-transform-unicode-escapes": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-unicode-escapes/download/@babel/plugin-transform-unicode-escapes-7.12.1.tgz?cache=0&sync_timestamp=1602800237534&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-unicode-escapes%2Fdownload%2F%40babel%2Fplugin-transform-unicode-escapes-7.12.1.tgz",
+ "integrity": "sha1-UjK5+BzLBwcLfDw2xnobePGEVwk=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-unicode-regex": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-unicode-regex/download/@babel/plugin-transform-unicode-regex-7.12.1.tgz?cache=0&sync_timestamp=1602800241610&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-unicode-regex%2Fdownload%2F%40babel%2Fplugin-transform-unicode-regex-7.12.1.tgz",
+ "integrity": "sha1-zJZh9hOQ21xl4/66zO/Vxqw/rss=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-create-regexp-features-plugin": "^7.12.1",
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/preset-env": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/preset-env/download/@babel/preset-env-7.12.1.tgz?cache=0&sync_timestamp=1602802054477&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-env%2Fdownload%2F%40babel%2Fpreset-env-7.12.1.tgz",
+ "integrity": "sha1-nH5cqCoZ78hlOEu0mJFI0u5desI=",
+ "dev": true,
+ "requires": {
+ "@babel/compat-data": "^7.12.1",
+ "@babel/helper-compilation-targets": "^7.12.1",
+ "@babel/helper-module-imports": "^7.12.1",
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/helper-validator-option": "^7.12.1",
+ "@babel/plugin-proposal-async-generator-functions": "^7.12.1",
+ "@babel/plugin-proposal-class-properties": "^7.12.1",
+ "@babel/plugin-proposal-dynamic-import": "^7.12.1",
+ "@babel/plugin-proposal-export-namespace-from": "^7.12.1",
+ "@babel/plugin-proposal-json-strings": "^7.12.1",
+ "@babel/plugin-proposal-logical-assignment-operators": "^7.12.1",
+ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1",
+ "@babel/plugin-proposal-numeric-separator": "^7.12.1",
+ "@babel/plugin-proposal-object-rest-spread": "^7.12.1",
+ "@babel/plugin-proposal-optional-catch-binding": "^7.12.1",
+ "@babel/plugin-proposal-optional-chaining": "^7.12.1",
+ "@babel/plugin-proposal-private-methods": "^7.12.1",
+ "@babel/plugin-proposal-unicode-property-regex": "^7.12.1",
+ "@babel/plugin-syntax-async-generators": "^7.8.0",
+ "@babel/plugin-syntax-class-properties": "^7.12.1",
+ "@babel/plugin-syntax-dynamic-import": "^7.8.0",
+ "@babel/plugin-syntax-export-namespace-from": "^7.8.3",
+ "@babel/plugin-syntax-json-strings": "^7.8.0",
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0",
+ "@babel/plugin-syntax-numeric-separator": "^7.10.4",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.0",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.0",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.0",
+ "@babel/plugin-syntax-top-level-await": "^7.12.1",
+ "@babel/plugin-transform-arrow-functions": "^7.12.1",
+ "@babel/plugin-transform-async-to-generator": "^7.12.1",
+ "@babel/plugin-transform-block-scoped-functions": "^7.12.1",
+ "@babel/plugin-transform-block-scoping": "^7.12.1",
+ "@babel/plugin-transform-classes": "^7.12.1",
+ "@babel/plugin-transform-computed-properties": "^7.12.1",
+ "@babel/plugin-transform-destructuring": "^7.12.1",
+ "@babel/plugin-transform-dotall-regex": "^7.12.1",
+ "@babel/plugin-transform-duplicate-keys": "^7.12.1",
+ "@babel/plugin-transform-exponentiation-operator": "^7.12.1",
+ "@babel/plugin-transform-for-of": "^7.12.1",
+ "@babel/plugin-transform-function-name": "^7.12.1",
+ "@babel/plugin-transform-literals": "^7.12.1",
+ "@babel/plugin-transform-member-expression-literals": "^7.12.1",
+ "@babel/plugin-transform-modules-amd": "^7.12.1",
+ "@babel/plugin-transform-modules-commonjs": "^7.12.1",
+ "@babel/plugin-transform-modules-systemjs": "^7.12.1",
+ "@babel/plugin-transform-modules-umd": "^7.12.1",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.1",
+ "@babel/plugin-transform-new-target": "^7.12.1",
+ "@babel/plugin-transform-object-super": "^7.12.1",
+ "@babel/plugin-transform-parameters": "^7.12.1",
+ "@babel/plugin-transform-property-literals": "^7.12.1",
+ "@babel/plugin-transform-regenerator": "^7.12.1",
+ "@babel/plugin-transform-reserved-words": "^7.12.1",
+ "@babel/plugin-transform-shorthand-properties": "^7.12.1",
+ "@babel/plugin-transform-spread": "^7.12.1",
+ "@babel/plugin-transform-sticky-regex": "^7.12.1",
+ "@babel/plugin-transform-template-literals": "^7.12.1",
+ "@babel/plugin-transform-typeof-symbol": "^7.12.1",
+ "@babel/plugin-transform-unicode-escapes": "^7.12.1",
+ "@babel/plugin-transform-unicode-regex": "^7.12.1",
+ "@babel/preset-modules": "^0.1.3",
+ "@babel/types": "^7.12.1",
+ "core-js-compat": "^3.6.2",
+ "semver": "^5.5.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz",
+ "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=",
+ "dev": true
+ }
+ }
+ },
+ "@babel/preset-flow": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/preset-flow/download/@babel/preset-flow-7.12.1.tgz",
+ "integrity": "sha1-GoHTdsWpVJ51NSo4iPjCc0Va6UA=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-transform-flow-strip-types": "^7.12.1"
+ }
+ },
+ "@babel/preset-modules": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npm.taobao.org/@babel/preset-modules/download/@babel/preset-modules-0.1.4.tgz?cache=0&sync_timestamp=1598549645892&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-modules%2Fdownload%2F%40babel%2Fpreset-modules-0.1.4.tgz",
+ "integrity": "sha1-Ni8raMZihClw/bXiVP/I/BwuQV4=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
+ "@babel/plugin-transform-dotall-regex": "^7.4.4",
+ "@babel/types": "^7.4.4",
+ "esutils": "^2.0.2"
+ }
+ },
+ "@babel/preset-react": {
+ "version": "7.12.5",
+ "resolved": "https://registry.npm.taobao.org/@babel/preset-react/download/@babel/preset-react-7.12.5.tgz",
+ "integrity": "sha1-1FYl9l1TYSB4pDhnxcZ1Dnh3LFY=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-transform-react-display-name": "^7.12.1",
+ "@babel/plugin-transform-react-jsx": "^7.12.5",
+ "@babel/plugin-transform-react-jsx-development": "^7.12.5",
+ "@babel/plugin-transform-react-jsx-self": "^7.12.1",
+ "@babel/plugin-transform-react-jsx-source": "^7.12.1",
+ "@babel/plugin-transform-react-pure-annotations": "^7.12.1"
+ }
+ },
+ "@babel/preset-typescript": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npm.taobao.org/@babel/preset-typescript/download/@babel/preset-typescript-7.12.1.tgz?cache=0&sync_timestamp=1602801827867&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-typescript%2Fdownload%2F%40babel%2Fpreset-typescript-7.12.1.tgz",
+ "integrity": "sha1-hkgLSDu5f3UDbohk/kBMx4LMMRs=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-transform-typescript": "^7.12.1"
+ }
+ },
+ "@babel/runtime": {
+ "version": "7.12.5",
+ "resolved": "https://registry.npm.taobao.org/@babel/runtime/download/@babel/runtime-7.12.5.tgz?cache=0&sync_timestamp=1604441104026&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.12.5.tgz",
+ "integrity": "sha1-QQ5+SHRB4bNgwpvnFdhw2bmFiC4=",
+ "requires": {
+ "regenerator-runtime": "^0.13.4"
+ },
+ "dependencies": {
+ "regenerator-runtime": {
+ "version": "0.13.7",
+ "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.13.7.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.7.tgz",
+ "integrity": "sha1-ysLazIoepnX+qrrriugziYrkb1U="
+ }
+ }
+ },
+ "@babel/runtime-corejs3": {
+ "version": "7.12.5",
+ "resolved": "https://registry.npm.taobao.org/@babel/runtime-corejs3/download/@babel/runtime-corejs3-7.12.5.tgz",
+ "integrity": "sha1-/+6R2g60xtrggHdOlLpgY2jkFPQ=",
+ "dev": true,
+ "requires": {
+ "core-js-pure": "^3.0.0",
+ "regenerator-runtime": "^0.13.4"
+ },
+ "dependencies": {
+ "regenerator-runtime": {
+ "version": "0.13.7",
+ "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.13.7.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.7.tgz",
+ "integrity": "sha1-ysLazIoepnX+qrrriugziYrkb1U=",
+ "dev": true
+ }
+ }
+ },
+ "@babel/template": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.10.4.tgz?cache=0&sync_timestamp=1593522831608&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.10.4.tgz",
+ "integrity": "sha1-MlGZbEIA68cdGo/EBfupQPNrong=",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.10.4",
+ "@babel/parser": "^7.10.4",
+ "@babel/types": "^7.10.4"
+ }
+ },
+ "@babel/traverse": {
+ "version": "7.12.5",
+ "resolved": "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.12.5.tgz",
+ "integrity": "sha1-eKDGjI6KNeTKz9MduLswPVYG8JU=",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.10.4",
+ "@babel/generator": "^7.12.5",
+ "@babel/helper-function-name": "^7.10.4",
+ "@babel/helper-split-export-declaration": "^7.11.0",
+ "@babel/parser": "^7.12.5",
+ "@babel/types": "^7.12.5",
+ "debug": "^4.1.0",
+ "globals": "^11.1.0",
+ "lodash": "^4.17.19"
+ }
+ },
+ "@babel/types": {
+ "version": "7.12.6",
+ "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.6.tgz?cache=0&sync_timestamp=1604486339981&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.6.tgz",
+ "integrity": "sha1-rg5V7xzOH7yIHNJvgjTrPmV+3JY=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.10.4",
+ "lodash": "^4.17.19",
+ "to-fast-properties": "^2.0.0"
+ }
+ },
+ "@bcoe/v8-coverage": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npm.taobao.org/@bcoe/v8-coverage/download/@bcoe/v8-coverage-0.2.3.tgz",
+ "integrity": "sha1-daLotRy3WKdVPWgEpZMteqznXDk=",
+ "dev": true
+ },
+ "@builder/app-helpers": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/@builder/app-helpers/download/@builder/app-helpers-1.0.1.tgz",
+ "integrity": "sha1-7u27x6NwCMkyGJebwDOF0VBMLak=",
+ "dev": true,
+ "requires": {
+ "fs-extra": "^8.1.0",
+ "lodash": "^4.17.20"
+ }
+ },
+ "@builder/user-config": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npm.taobao.org/@builder/user-config/download/@builder/user-config-0.1.1.tgz",
+ "integrity": "sha1-21AHT9yPRdmhjnvfYMIJXula4j0=",
+ "dev": true,
+ "requires": {
+ "@alifd/fusion-collector": "^1.2.5",
+ "@babel/plugin-transform-runtime": "^7.6.2",
+ "@builder/app-helpers": "^1.0.0",
+ "add-asset-html-webpack-plugin": "^3.1.3",
+ "chalk": "^4.0.0",
+ "copy-webpack-plugin": "^5.0.4",
+ "core-js": "^3.3.1",
+ "debug": "^4.1.1",
+ "eslint-loader": "^4.0.0",
+ "eslint-reporting-webpack-plugin": "^0.1.0",
+ "fork-ts-checker-webpack-plugin": "^5.0.5",
+ "friendly-errors-webpack-plugin": "^1.7.0",
+ "fs-extra": "^8.1.0",
+ "loader-utils": "^2.0.0",
+ "lodash": "^4.17.15",
+ "mkcert": "^1.2.0",
+ "path-exists": "^4.0.0",
+ "postcss-plugin-rpx2vw": "^0.0.2",
+ "react-dev-utils": "^10.2.1",
+ "regenerator-runtime": "^0.13.3",
+ "webpack-bundle-analyzer": "^3.6.0",
+ "webpack-dev-mock": "^1.0.1",
+ "webpack-plugin-import": "^0.2.6"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-5.0.0.tgz",
+ "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1601839122515&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz",
+ "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "browserslist": {
+ "version": "4.10.0",
+ "resolved": "https://registry.npm.taobao.org/browserslist/download/browserslist-4.10.0.tgz?cache=0&sync_timestamp=1604944989360&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.10.0.tgz",
+ "integrity": "sha1-8XlzeRPq8NK5jkkmrBymoVy8xqk=",
+ "dev": true,
+ "requires": {
+ "caniuse-lite": "^1.0.30001035",
+ "electron-to-chromium": "^1.3.378",
+ "node-releases": "^1.1.52",
+ "pkg-up": "^3.1.0"
+ }
+ },
+ "chalk": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz",
+ "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "cli-width": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npm.taobao.org/cli-width/download/cli-width-2.2.1.tgz",
+ "integrity": "sha1-sEM9C06chH7xiGik7xb9X8gnHEg=",
+ "dev": true
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
+ "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
+ "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
+ "dev": true
+ },
+ "copy-webpack-plugin": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npm.taobao.org/copy-webpack-plugin/download/copy-webpack-plugin-5.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcopy-webpack-plugin%2Fdownload%2Fcopy-webpack-plugin-5.1.2.tgz",
+ "integrity": "sha1-ioieHcr6bJHGzUvhrRWPHTgjuuI=",
+ "dev": true,
+ "requires": {
+ "cacache": "^12.0.3",
+ "find-cache-dir": "^2.1.0",
+ "glob-parent": "^3.1.0",
+ "globby": "^7.1.1",
+ "is-glob": "^4.0.1",
+ "loader-utils": "^1.2.3",
+ "minimatch": "^3.0.4",
+ "normalize-path": "^3.0.0",
+ "p-limit": "^2.2.1",
+ "schema-utils": "^1.0.0",
+ "serialize-javascript": "^4.0.0",
+ "webpack-log": "^2.0.0"
+ },
+ "dependencies": {
+ "loader-utils": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.4.0.tgz",
+ "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=",
+ "dev": true,
+ "requires": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^1.0.1"
+ }
+ }
+ }
+ },
+ "core-js": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npm.taobao.org/core-js/download/core-js-3.7.0.tgz?cache=0&sync_timestamp=1604675498528&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-3.7.0.tgz",
+ "integrity": "sha1-sKdhoCSIV3r7+XF55Ggb9JVoUg8=",
+ "dev": true
+ },
+ "cosmiconfig": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-6.0.0.tgz?cache=0&sync_timestamp=1596312863119&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcosmiconfig%2Fdownload%2Fcosmiconfig-6.0.0.tgz",
+ "integrity": "sha1-2k/uhTxS9rHmk19BwaL8UL1KmYI=",
+ "dev": true,
+ "requires": {
+ "@types/parse-json": "^4.0.0",
+ "import-fresh": "^3.1.0",
+ "parse-json": "^5.0.0",
+ "path-type": "^4.0.0",
+ "yaml": "^1.7.2"
+ }
+ },
+ "cross-spawn": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-7.0.1.tgz",
+ "integrity": "sha1-CrVihuD3wk4VPQTMKqAn5DqaXRQ=",
+ "dev": true,
+ "requires": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ }
+ },
+ "detect-port-alt": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npm.taobao.org/detect-port-alt/download/detect-port-alt-1.1.6.tgz",
+ "integrity": "sha1-JHB96r6TLUo89iEwICfCsmZWgnU=",
+ "dev": true,
+ "requires": {
+ "address": "^1.0.1",
+ "debug": "^2.6.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1600502871403&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz",
+ "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
+ }
+ },
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-8.0.0.tgz?cache=0&sync_timestamp=1603212263242&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Femoji-regex%2Fdownload%2Femoji-regex-8.0.0.tgz",
+ "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=",
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-2.0.0.tgz?cache=0&sync_timestamp=1587627107924&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-2.0.0.tgz",
+ "integrity": "sha1-owME6Z2qMuI7L9IPUbq9B8/8o0Q=",
+ "dev": true
+ },
+ "filesize": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npm.taobao.org/filesize/download/filesize-6.0.1.tgz",
+ "integrity": "sha1-+FC1CZCcfIb35FDqGQBsMcLtPS8=",
+ "dev": true
+ },
+ "find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz?cache=0&sync_timestamp=1597169862146&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-4.1.0.tgz",
+ "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=",
+ "dev": true,
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "fork-ts-checker-webpack-plugin": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npm.taobao.org/fork-ts-checker-webpack-plugin/download/fork-ts-checker-webpack-plugin-5.2.1.tgz",
+ "integrity": "sha1-eTJthpeXkG+osk4qvPlCH8gFRQ0=",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.8.3",
+ "@types/json-schema": "^7.0.5",
+ "chalk": "^4.1.0",
+ "cosmiconfig": "^6.0.0",
+ "deepmerge": "^4.2.2",
+ "fs-extra": "^9.0.0",
+ "memfs": "^3.1.2",
+ "minimatch": "^3.0.4",
+ "schema-utils": "2.7.0",
+ "semver": "^7.3.2",
+ "tapable": "^1.0.0"
+ },
+ "dependencies": {
+ "fs-extra": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npm.taobao.org/fs-extra/download/fs-extra-9.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-extra%2Fdownload%2Ffs-extra-9.0.1.tgz",
+ "integrity": "sha1-kQ2gBiQ3ukw5/t2GPxZ1zP78ufw=",
+ "dev": true,
+ "requires": {
+ "at-least-node": "^1.0.0",
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^1.0.0"
+ }
+ },
+ "schema-utils": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-2.7.0.tgz",
+ "integrity": "sha1-FxUfdtjq5n+793lgwzxnatn078c=",
+ "dev": true,
+ "requires": {
+ "@types/json-schema": "^7.0.4",
+ "ajv": "^6.12.2",
+ "ajv-keywords": "^3.4.1"
+ }
+ }
+ }
+ },
+ "globby": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npm.taobao.org/globby/download/globby-7.1.1.tgz",
+ "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=",
+ "dev": true,
+ "requires": {
+ "array-union": "^1.0.1",
+ "dir-glob": "^2.0.0",
+ "glob": "^7.1.2",
+ "ignore": "^3.3.5",
+ "pify": "^3.0.0",
+ "slash": "^1.0.0"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1596294337050&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz",
+ "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=",
+ "dev": true
+ },
+ "ignore": {
+ "version": "3.3.10",
+ "resolved": "https://registry.npm.taobao.org/ignore/download/ignore-3.3.10.tgz",
+ "integrity": "sha1-Cpf7h2mG6AgcYxFg+PnziRV/AEM=",
+ "dev": true
+ },
+ "import-fresh": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npm.taobao.org/import-fresh/download/import-fresh-3.2.2.tgz?cache=0&sync_timestamp=1604256056573&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-3.2.2.tgz",
+ "integrity": "sha1-/BKcFgxdaCNVB/QzGmuq0Ya9vD4=",
+ "dev": true,
+ "requires": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ }
+ },
+ "inquirer": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npm.taobao.org/inquirer/download/inquirer-7.0.4.tgz",
+ "integrity": "sha1-ma9b3kcVOryiP1x/ww2yR/OdpwM=",
+ "dev": true,
+ "requires": {
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^2.4.2",
+ "cli-cursor": "^3.1.0",
+ "cli-width": "^2.0.0",
+ "external-editor": "^3.0.3",
+ "figures": "^3.0.0",
+ "lodash": "^4.17.15",
+ "mute-stream": "0.0.8",
+ "run-async": "^2.2.0",
+ "rxjs": "^6.5.3",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^5.1.0",
+ "through": "^2.3.6"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz",
+ "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1601839122515&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz",
+ "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz",
+ "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz",
+ "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz?cache=0&sync_timestamp=1587627107924&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz?cache=0&sync_timestamp=1596294337050&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz",
+ "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1598611730985&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz",
+ "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=",
+ "dev": true
+ },
+ "jsonfile": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npm.taobao.org/jsonfile/download/jsonfile-6.1.0.tgz?cache=0&sync_timestamp=1604161933968&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsonfile%2Fdownload%2Fjsonfile-6.1.0.tgz",
+ "integrity": "sha1-vFWyY0eTxnnsZAMJTrE2mKbsCq4=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.6",
+ "universalify": "^2.0.0"
+ },
+ "dependencies": {
+ "universalify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/universalify/download/universalify-2.0.0.tgz?cache=0&sync_timestamp=1603180048005&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funiversalify%2Fdownload%2Funiversalify-2.0.0.tgz",
+ "integrity": "sha1-daSYTv7cSwiXXFrrc/Uw0C3yVxc=",
+ "dev": true
+ }
+ }
+ },
+ "loader-utils": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-2.0.0.tgz",
+ "integrity": "sha1-5MrOW4FtQloWa18JfhDNErNgZLA=",
+ "dev": true,
+ "requires": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^2.1.2"
+ },
+ "dependencies": {
+ "json5": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npm.taobao.org/json5/download/json5-2.1.3.tgz",
+ "integrity": "sha1-ybD3+pIzv+WAf+ZvzzpWF+1ZfUM=",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.5"
+ }
+ }
+ }
+ },
+ "locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz",
+ "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=",
+ "dev": true,
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ },
+ "open": {
+ "version": "7.3.0",
+ "resolved": "https://registry.npm.taobao.org/open/download/open-7.3.0.tgz?cache=0&sync_timestamp=1601376312546&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fopen%2Fdownload%2Fopen-7.3.0.tgz",
+ "integrity": "sha1-RUYf3uRkRPNkW24U6zypS4Lhvmk=",
+ "dev": true,
+ "requires": {
+ "is-docker": "^2.0.0",
+ "is-wsl": "^2.1.1"
+ }
+ },
+ "p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz",
+ "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=",
+ "dev": true,
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz?cache=0&sync_timestamp=1597081508945&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-4.1.0.tgz",
+ "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.2.0"
+ }
+ },
+ "p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz",
+ "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=",
+ "dev": true
+ },
+ "parse-json": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-5.1.0.tgz?cache=0&sync_timestamp=1598129247474&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-json%2Fdownload%2Fparse-json-5.1.0.tgz",
+ "integrity": "sha1-+WCIzfJKj6qa6poAny2dlCyZlkY=",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "lines-and-columns": "^1.1.6"
+ }
+ },
+ "path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-4.0.0.tgz",
+ "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=",
+ "dev": true
+ },
+ "path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-3.1.1.tgz",
+ "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=",
+ "dev": true
+ },
+ "path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/path-type/download/path-type-4.0.0.tgz",
+ "integrity": "sha1-hO0BwKe6OAr+CdkKjBgNzZ0DBDs=",
+ "dev": true
+ },
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true
+ },
+ "react-dev-utils": {
+ "version": "10.2.1",
+ "resolved": "https://registry.npm.taobao.org/react-dev-utils/download/react-dev-utils-10.2.1.tgz?cache=0&sync_timestamp=1603462727689&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-dev-utils%2Fdownload%2Freact-dev-utils-10.2.1.tgz",
+ "integrity": "sha1-9t4yWuJfpNVG0J30uxvv3G3RnBk=",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "7.8.3",
+ "address": "1.1.2",
+ "browserslist": "4.10.0",
+ "chalk": "2.4.2",
+ "cross-spawn": "7.0.1",
+ "detect-port-alt": "1.1.6",
+ "escape-string-regexp": "2.0.0",
+ "filesize": "6.0.1",
+ "find-up": "4.1.0",
+ "fork-ts-checker-webpack-plugin": "3.1.1",
+ "global-modules": "2.0.0",
+ "globby": "8.0.2",
+ "gzip-size": "5.1.1",
+ "immer": "1.10.0",
+ "inquirer": "7.0.4",
+ "is-root": "2.1.0",
+ "loader-utils": "1.2.3",
+ "open": "^7.0.2",
+ "pkg-up": "3.1.0",
+ "react-error-overlay": "^6.0.7",
+ "recursive-readdir": "2.2.2",
+ "shell-quote": "1.7.2",
+ "strip-ansi": "6.0.0",
+ "text-table": "0.2.0"
+ },
+ "dependencies": {
+ "@babel/code-frame": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.8.3.tgz",
+ "integrity": "sha1-M+JZA9dIEYFTThLsCiXxa2/PQZ4=",
+ "dev": true,
+ "requires": {
+ "@babel/highlight": "^7.8.3"
+ }
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1601839122515&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz",
+ "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz",
+ "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "dependencies": {
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz?cache=0&sync_timestamp=1587627107924&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true
+ }
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz",
+ "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "dev": true
+ },
+ "dir-glob": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/dir-glob/download/dir-glob-2.0.0.tgz",
+ "integrity": "sha1-CyBdK2rvmCOMooZZioIE0p0KADQ=",
+ "dev": true,
+ "requires": {
+ "arrify": "^1.0.1",
+ "path-type": "^3.0.0"
+ }
+ },
+ "emojis-list": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-2.1.0.tgz",
+ "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
+ "dev": true
+ },
+ "fork-ts-checker-webpack-plugin": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npm.taobao.org/fork-ts-checker-webpack-plugin/download/fork-ts-checker-webpack-plugin-3.1.1.tgz",
+ "integrity": "sha1-oWQsDT5l9QwswXQunAqA9EH4axk=",
+ "dev": true,
+ "requires": {
+ "babel-code-frame": "^6.22.0",
+ "chalk": "^2.4.1",
+ "chokidar": "^3.3.0",
+ "micromatch": "^3.1.10",
+ "minimatch": "^3.0.4",
+ "semver": "^5.6.0",
+ "tapable": "^1.0.0",
+ "worker-rpc": "^0.1.0"
+ }
+ },
+ "globby": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npm.taobao.org/globby/download/globby-8.0.2.tgz",
+ "integrity": "sha1-VpdhnM2VxSdduy1vqkIIfBqUHY0=",
+ "dev": true,
+ "requires": {
+ "array-union": "^1.0.1",
+ "dir-glob": "2.0.0",
+ "fast-glob": "^2.0.2",
+ "glob": "^7.1.2",
+ "ignore": "^3.3.5",
+ "pify": "^3.0.0",
+ "slash": "^1.0.0"
+ }
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz?cache=0&sync_timestamp=1596294337050&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ },
+ "loader-utils": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.2.3.tgz",
+ "integrity": "sha1-H/XcaRHJ8KBiUxpMBLYJQGEIwsc=",
+ "dev": true,
+ "requires": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^2.0.0",
+ "json5": "^1.0.1"
+ }
+ },
+ "path-type": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/path-type/download/path-type-3.0.0.tgz",
+ "integrity": "sha1-zvMdyOCho7sNEFwM2Xzzv0f0428=",
+ "dev": true,
+ "requires": {
+ "pify": "^3.0.0"
+ }
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz",
+ "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1598611730985&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz",
+ "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "regenerator-runtime": {
+ "version": "0.13.7",
+ "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.13.7.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.7.tgz",
+ "integrity": "sha1-ysLazIoepnX+qrrriugziYrkb1U=",
+ "dev": true
+ },
+ "shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-2.0.0.tgz",
+ "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "^3.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-3.0.0.tgz",
+ "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=",
+ "dev": true
+ },
+ "slash": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz",
+ "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-4.2.0.tgz",
+ "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-6.0.0.tgz",
+ "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1598611730985&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz",
+ "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "universalify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/universalify/download/universalify-1.0.0.tgz?cache=0&sync_timestamp=1603180048005&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funiversalify%2Fdownload%2Funiversalify-1.0.0.tgz",
+ "integrity": "sha1-thodoXPoQ1sv48Z9Kbmt+FlL0W0=",
+ "dev": true
+ },
+ "which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npm.taobao.org/which/download/which-2.0.2.tgz",
+ "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ }
+ }
+ },
+ "@cnakazawa/watch": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npm.taobao.org/@cnakazawa/watch/download/@cnakazawa/watch-1.0.4.tgz",
+ "integrity": "sha1-+GSuhQBND8q29QvpFBxNo2jRZWo=",
+ "dev": true,
+ "requires": {
+ "exec-sh": "^0.3.2",
+ "minimist": "^1.2.0"
+ }
+ },
+ "@commitlint/config-conventional": {
+ "version": "8.3.4",
+ "resolved": "https://registry.npm.taobao.org/@commitlint/config-conventional/download/@commitlint/config-conventional-8.3.4.tgz",
+ "integrity": "sha1-/tE7NxFpBmOxdsH2s5wgWlZWGNI=",
+ "dev": true,
+ "requires": {
+ "conventional-changelog-conventionalcommits": "4.2.1"
+ }
+ },
+ "@formatjs/intl-unified-numberformat": {
+ "version": "3.3.7",
+ "resolved": "https://registry.npm.taobao.org/@formatjs/intl-unified-numberformat/download/@formatjs/intl-unified-numberformat-3.3.7.tgz",
+ "integrity": "sha1-mZWiRWiQgYjnFtgaHeW3ArLuAOI=",
+ "requires": {
+ "@formatjs/intl-utils": "^2.3.0"
+ }
+ },
+ "@formatjs/intl-utils": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npm.taobao.org/@formatjs/intl-utils/download/@formatjs/intl-utils-2.3.0.tgz",
+ "integrity": "sha1-LcjFcETeA0DrU6e6YC5Zq/gNx5k="
+ },
+ "@ice/sandbox": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npm.taobao.org/@ice/sandbox/download/@ice/sandbox-1.0.6.tgz",
+ "integrity": "sha1-z2kKdMJIA2j4eSQ9rOLAEHG5d7c=",
+ "dev": true
+ },
+ "@ice/spec": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/@ice/spec/download/@ice/spec-1.0.1.tgz",
+ "integrity": "sha1-tlZSiJ7CdUwYnO1f8VuAbdtiK7M=",
+ "dev": true,
+ "requires": {
+ "@commitlint/config-conventional": "^8.1.0",
+ "@typescript-eslint/eslint-plugin": "^2.20.0",
+ "@typescript-eslint/parser": "^2.20.0",
+ "babel-eslint": "^10.0.2",
+ "eslint-config-airbnb": "^18.0.1",
+ "eslint-config-prettier": "^6.0.0",
+ "eslint-plugin-import": "^2.18.0",
+ "eslint-plugin-jsx-a11y": "^6.2.3",
+ "eslint-plugin-react": "^7.14.2",
+ "eslint-plugin-react-hooks": "^2.4.0",
+ "stylelint-config-css-modules": "^2.2.0",
+ "stylelint-config-prettier": "^8.0.1",
+ "stylelint-config-rational-order": "^0.1.2",
+ "stylelint-config-standard": "^20.0.0",
+ "stylelint-order": "^4.0.0",
+ "stylelint-scss": "^3.14.2"
+ }
+ },
+ "@ice/stark": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npm.taobao.org/@ice/stark/download/@ice/stark-1.6.0.tgz",
+ "integrity": "sha1-IgWzShP9uygXb5e7g42Tlyl8mAo=",
+ "dev": true,
+ "requires": {
+ "@ice/sandbox": "^1.0.4",
+ "lodash.isequal": "^4.5.0",
+ "path-to-regexp": "^1.7.0",
+ "url-parse": "^1.1.9"
+ }
+ },
+ "@ice/stark-app": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npm.taobao.org/@ice/stark-app/download/@ice/stark-app-1.2.0.tgz",
+ "integrity": "sha1-6GcqfazAfe4Ugm3AtTZjki4rn6Y=",
+ "dev": true
+ },
+ "@ice/store": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npm.taobao.org/@ice/store/download/@ice/store-1.4.2.tgz",
+ "integrity": "sha1-t/EOSDic3/Bv14FFFHCL6cWG4AA=",
+ "dev": true,
+ "requires": {
+ "immer": "^6.0.2",
+ "lodash.isfunction": "^3.0.9",
+ "react-redux": "^7.2.0",
+ "redux": "^4.0.5",
+ "redux-thunk": "^2.3.0"
+ },
+ "dependencies": {
+ "immer": {
+ "version": "6.0.9",
+ "resolved": "https://registry.npm.taobao.org/immer/download/immer-6.0.9.tgz?cache=0&sync_timestamp=1603236351037&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimmer%2Fdownload%2Fimmer-6.0.9.tgz",
+ "integrity": "sha1-ud1puOabOhI5HofbHj/1NdGyZIU=",
+ "dev": true
+ }
+ }
+ },
+ "@icedesign/container": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npm.taobao.org/@icedesign/container/download/@icedesign/container-1.0.5.tgz",
+ "integrity": "sha1-hcV+fZXy5nGt3St3tqy5aItgHZ4=",
+ "requires": {
+ "@alifd/next": "^1.x",
+ "prop-types": "^15.5.8"
+ }
+ },
+ "@icedesign/skin": {
+ "version": "0.1.14",
+ "resolved": "https://registry.npm.taobao.org/@icedesign/skin/download/@icedesign/skin-0.1.14.tgz",
+ "integrity": "sha1-vo5i9Gelouq+efVN4jsJJegw2uI=",
+ "dev": true
+ },
+ "@istanbuljs/load-nyc-config": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npm.taobao.org/@istanbuljs/load-nyc-config/download/@istanbuljs/load-nyc-config-1.1.0.tgz",
+ "integrity": "sha1-/T2x1Z7PfPEh6AZQu4ZxL5tV7O0=",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.3.1",
+ "find-up": "^4.1.0",
+ "get-package-type": "^0.1.0",
+ "js-yaml": "^3.13.1",
+ "resolve-from": "^5.0.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz?cache=0&sync_timestamp=1603921882890&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz",
+ "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=",
+ "dev": true
+ },
+ "find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz?cache=0&sync_timestamp=1597169862146&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-4.1.0.tgz",
+ "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=",
+ "dev": true,
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz",
+ "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=",
+ "dev": true,
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
+ "p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz",
+ "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=",
+ "dev": true,
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz?cache=0&sync_timestamp=1597081508945&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-4.1.0.tgz",
+ "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.2.0"
+ }
+ },
+ "p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz",
+ "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=",
+ "dev": true
+ },
+ "path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-4.0.0.tgz",
+ "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=",
+ "dev": true
+ },
+ "resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-5.0.0.tgz",
+ "integrity": "sha1-w1IlhD3493bfIcV1V7wIfp39/Gk=",
+ "dev": true
+ }
+ }
+ },
+ "@istanbuljs/schema": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npm.taobao.org/@istanbuljs/schema/download/@istanbuljs/schema-0.1.2.tgz",
+ "integrity": "sha1-JlIL8Jq+SlZEzVQU43ElqJVCQd0=",
+ "dev": true
+ },
+ "@jest/console": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npm.taobao.org/@jest/console/download/@jest/console-26.6.2.tgz",
+ "integrity": "sha1-TgS8RkAUNYsDq0k3gF7jagrrmPI=",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^26.6.2",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "jest-message-util": "^26.6.2",
+ "jest-util": "^26.6.2",
+ "slash": "^3.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1601839122515&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz",
+ "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz",
+ "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
+ "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
+ "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1596294337050&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz",
+ "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=",
+ "dev": true
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/slash/download/slash-3.0.0.tgz",
+ "integrity": "sha1-ZTm+hwwWWtvVJAIg2+Nh8bxNRjQ=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1598611730985&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz",
+ "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "@jest/core": {
+ "version": "26.6.3",
+ "resolved": "https://registry.npm.taobao.org/@jest/core/download/@jest/core-26.6.3.tgz?cache=0&sync_timestamp=1604468975323&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40jest%2Fcore%2Fdownload%2F%40jest%2Fcore-26.6.3.tgz",
+ "integrity": "sha1-djn8s4M9dIpGVq2lS94ZMFHkX60=",
+ "dev": true,
+ "requires": {
+ "@jest/console": "^26.6.2",
+ "@jest/reporters": "^26.6.2",
+ "@jest/test-result": "^26.6.2",
+ "@jest/transform": "^26.6.2",
+ "@jest/types": "^26.6.2",
+ "@types/node": "*",
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.0.0",
+ "exit": "^0.1.2",
+ "graceful-fs": "^4.2.4",
+ "jest-changed-files": "^26.6.2",
+ "jest-config": "^26.6.3",
+ "jest-haste-map": "^26.6.2",
+ "jest-message-util": "^26.6.2",
+ "jest-regex-util": "^26.0.0",
+ "jest-resolve": "^26.6.2",
+ "jest-resolve-dependencies": "^26.6.3",
+ "jest-runner": "^26.6.3",
+ "jest-runtime": "^26.6.3",
+ "jest-snapshot": "^26.6.2",
+ "jest-util": "^26.6.2",
+ "jest-validate": "^26.6.2",
+ "jest-watcher": "^26.6.2",
+ "micromatch": "^4.0.2",
+ "p-each-series": "^2.1.0",
+ "rimraf": "^3.0.0",
+ "slash": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-5.0.0.tgz",
+ "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1601839122515&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz",
+ "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz",
+ "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz",
+ "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
+ "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
+ "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
+ "dev": true
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz",
+ "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1596294337050&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz",
+ "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=",
+ "dev": true
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz",
+ "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-4.0.2.tgz",
+ "integrity": "sha1-T8sJmb+fvC/L3SEvbWKbmlbDklk=",
+ "dev": true,
+ "requires": {
+ "braces": "^3.0.1",
+ "picomatch": "^2.0.5"
+ }
+ },
+ "rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-3.0.2.tgz?cache=0&sync_timestamp=1587992602190&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-3.0.2.tgz",
+ "integrity": "sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho=",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/slash/download/slash-3.0.0.tgz",
+ "integrity": "sha1-ZTm+hwwWWtvVJAIg2+Nh8bxNRjQ=",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-6.0.0.tgz",
+ "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1598611730985&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz",
+ "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-5.0.1.tgz",
+ "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ }
+ }
+ },
+ "@jest/environment": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npm.taobao.org/@jest/environment/download/@jest/environment-26.6.2.tgz",
+ "integrity": "sha1-ujZMxy4iHnnMjwqZVVv111d8+Sw=",
+ "dev": true,
+ "requires": {
+ "@jest/fake-timers": "^26.6.2",
+ "@jest/types": "^26.6.2",
+ "@types/node": "*",
+ "jest-mock": "^26.6.2"
+ }
+ },
+ "@jest/fake-timers": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npm.taobao.org/@jest/fake-timers/download/@jest/fake-timers-26.6.2.tgz",
+ "integrity": "sha1-RZwym89wzuSvTX4/PmeEgSNTWq0=",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^26.6.2",
+ "@sinonjs/fake-timers": "^6.0.1",
+ "@types/node": "*",
+ "jest-message-util": "^26.6.2",
+ "jest-mock": "^26.6.2",
+ "jest-util": "^26.6.2"
+ }
+ },
+ "@jest/globals": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npm.taobao.org/@jest/globals/download/@jest/globals-26.6.2.tgz?cache=0&sync_timestamp=1604321658564&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40jest%2Fglobals%2Fdownload%2F%40jest%2Fglobals-26.6.2.tgz",
+ "integrity": "sha1-W2E7eKGqJlWukI66Y4zJaiDfcgo=",
+ "dev": true,
+ "requires": {
+ "@jest/environment": "^26.6.2",
+ "@jest/types": "^26.6.2",
+ "expect": "^26.6.2"
+ }
+ },
+ "@jest/reporters": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npm.taobao.org/@jest/reporters/download/@jest/reporters-26.6.2.tgz",
+ "integrity": "sha1-H1GLmWN6Xxgwe9Ps+SdfaIKmZ/Y=",
+ "dev": true,
+ "requires": {
+ "@bcoe/v8-coverage": "^0.2.3",
+ "@jest/console": "^26.6.2",
+ "@jest/test-result": "^26.6.2",
+ "@jest/transform": "^26.6.2",
+ "@jest/types": "^26.6.2",
+ "chalk": "^4.0.0",
+ "collect-v8-coverage": "^1.0.0",
+ "exit": "^0.1.2",
+ "glob": "^7.1.2",
+ "graceful-fs": "^4.2.4",
+ "istanbul-lib-coverage": "^3.0.0",
+ "istanbul-lib-instrument": "^4.0.3",
+ "istanbul-lib-report": "^3.0.0",
+ "istanbul-lib-source-maps": "^4.0.0",
+ "istanbul-reports": "^3.0.2",
+ "jest-haste-map": "^26.6.2",
+ "jest-resolve": "^26.6.2",
+ "jest-util": "^26.6.2",
+ "jest-worker": "^26.6.2",
+ "node-notifier": "^8.0.0",
+ "slash": "^3.0.0",
+ "source-map": "^0.6.0",
+ "string-length": "^4.0.1",
+ "terminal-link": "^2.0.0",
+ "v8-to-istanbul": "^7.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1601839122515&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz",
+ "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz",
+ "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
+ "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
+ "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1596294337050&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz",
+ "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=",
+ "dev": true
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/slash/download/slash-3.0.0.tgz",
+ "integrity": "sha1-ZTm+hwwWWtvVJAIg2+Nh8bxNRjQ=",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1598611730985&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz",
+ "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "@jest/source-map": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npm.taobao.org/@jest/source-map/download/@jest/source-map-26.6.2.tgz?cache=0&sync_timestamp=1604319711726&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40jest%2Fsource-map%2Fdownload%2F%40jest%2Fsource-map-26.6.2.tgz",
+ "integrity": "sha1-Ka9eHi4yTK/MyTbyGDCfVKtp1TU=",
+ "dev": true,
+ "requires": {
+ "callsites": "^3.0.0",
+ "graceful-fs": "^4.2.4",
+ "source-map": "^0.6.0"
+ },
+ "dependencies": {
+ "callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npm.taobao.org/callsites/download/callsites-3.1.0.tgz",
+ "integrity": "sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M=",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "@jest/test-result": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npm.taobao.org/@jest/test-result/download/@jest/test-result-26.6.2.tgz",
+ "integrity": "sha1-VdpYti3xNFdsyVR276X3lJ4/Xxg=",
+ "dev": true,
+ "requires": {
+ "@jest/console": "^26.6.2",
+ "@jest/types": "^26.6.2",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "collect-v8-coverage": "^1.0.0"
+ }
+ },
+ "@jest/test-sequencer": {
+ "version": "26.6.3",
+ "resolved": "https://registry.npm.taobao.org/@jest/test-sequencer/download/@jest/test-sequencer-26.6.3.tgz?cache=0&sync_timestamp=1604469032027&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40jest%2Ftest-sequencer%2Fdownload%2F%40jest%2Ftest-sequencer-26.6.3.tgz",
+ "integrity": "sha1-mOikUQCGOIbQdCBej/3Fp+tYKxc=",
+ "dev": true,
+ "requires": {
+ "@jest/test-result": "^26.6.2",
+ "graceful-fs": "^4.2.4",
+ "jest-haste-map": "^26.6.2",
+ "jest-runner": "^26.6.3",
+ "jest-runtime": "^26.6.3"
+ }
+ },
+ "@jest/transform": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npm.taobao.org/@jest/transform/download/@jest/transform-26.6.2.tgz",
+ "integrity": "sha1-WsV8X6GtF7Kq6D5z5FgTiU3PLks=",
+ "dev": true,
+ "requires": {
+ "@babel/core": "^7.1.0",
+ "@jest/types": "^26.6.2",
+ "babel-plugin-istanbul": "^6.0.0",
+ "chalk": "^4.0.0",
+ "convert-source-map": "^1.4.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "graceful-fs": "^4.2.4",
+ "jest-haste-map": "^26.6.2",
+ "jest-regex-util": "^26.0.0",
+ "jest-util": "^26.6.2",
+ "micromatch": "^4.0.2",
+ "pirates": "^4.0.1",
+ "slash": "^3.0.0",
+ "source-map": "^0.6.1",
+ "write-file-atomic": "^3.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1601839122515&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz",
+ "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz",
+ "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz",
+ "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
+ "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
+ "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
+ "dev": true
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz",
+ "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1596294337050&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz",
+ "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=",
+ "dev": true
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz",
+ "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-4.0.2.tgz",
+ "integrity": "sha1-T8sJmb+fvC/L3SEvbWKbmlbDklk=",
+ "dev": true,
+ "requires": {
+ "braces": "^3.0.1",
+ "picomatch": "^2.0.5"
+ }
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/slash/download/slash-3.0.0.tgz",
+ "integrity": "sha1-ZTm+hwwWWtvVJAIg2+Nh8bxNRjQ=",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1598611730985&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz",
+ "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-5.0.1.tgz",
+ "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ }
+ }
+ },
+ "@jest/types": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npm.taobao.org/@jest/types/download/@jest/types-26.6.2.tgz",
+ "integrity": "sha1-vvWlMgMOHYii9abZM/hOlyJu1I4=",
+ "dev": true,
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^15.0.0",
+ "chalk": "^4.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1601839122515&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz",
+ "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz",
+ "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
+ "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
+ "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1596294337050&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz",
+ "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1598611730985&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz",
+ "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "@mrmlnc/readdir-enhanced": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npm.taobao.org/@mrmlnc/readdir-enhanced/download/@mrmlnc/readdir-enhanced-2.2.1.tgz",
+ "integrity": "sha1-UkryQNGjYFJ7cwR17PoTRKpUDd4=",
+ "dev": true,
+ "requires": {
+ "call-me-maybe": "^1.0.1",
+ "glob-to-regexp": "^0.3.0"
+ }
+ },
+ "@nodelib/fs.scandir": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npm.taobao.org/@nodelib/fs.scandir/download/@nodelib/fs.scandir-2.1.3.tgz",
+ "integrity": "sha1-Olgr21OATGum0UZXnEblITDPSjs=",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.stat": "2.0.3",
+ "run-parallel": "^1.1.9"
+ },
+ "dependencies": {
+ "@nodelib/fs.stat": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npm.taobao.org/@nodelib/fs.stat/download/@nodelib/fs.stat-2.0.3.tgz",
+ "integrity": "sha1-NNxfTKu8cg9OYPdadH5+zWwXW9M=",
+ "dev": true
+ }
+ }
+ },
+ "@nodelib/fs.stat": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npm.taobao.org/@nodelib/fs.stat/download/@nodelib/fs.stat-1.1.3.tgz",
+ "integrity": "sha1-K1o6s/kYzKSKjHVMCBaOPwPrphs=",
+ "dev": true
+ },
+ "@nodelib/fs.walk": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npm.taobao.org/@nodelib/fs.walk/download/@nodelib/fs.walk-1.2.4.tgz",
+ "integrity": "sha1-ARuSAqcKY2bkNspcBlhEUoqwSXY=",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.scandir": "2.1.3",
+ "fastq": "^1.6.0"
+ }
+ },
+ "@npmcli/move-file": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/@npmcli/move-file/download/@npmcli/move-file-1.0.1.tgz",
+ "integrity": "sha1-3hAwcNrA9IzknPZpPCOvWcD3BGQ=",
+ "dev": true,
+ "requires": {
+ "mkdirp": "^1.0.4"
+ },
+ "dependencies": {
+ "mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-1.0.4.tgz?cache=0&sync_timestamp=1587535418745&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-1.0.4.tgz",
+ "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=",
+ "dev": true
+ }
+ }
+ },
+ "@sinonjs/commons": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npm.taobao.org/@sinonjs/commons/download/@sinonjs/commons-1.8.1.tgz?cache=0&sync_timestamp=1594975802135&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40sinonjs%2Fcommons%2Fdownload%2F%40sinonjs%2Fcommons-1.8.1.tgz",
+ "integrity": "sha1-598A+YogMyT23HzGBsrZ1KirIhc=",
+ "dev": true,
+ "requires": {
+ "type-detect": "4.0.8"
+ }
+ },
+ "@sinonjs/fake-timers": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npm.taobao.org/@sinonjs/fake-timers/download/@sinonjs/fake-timers-6.0.1.tgz",
+ "integrity": "sha1-KTZ0/MsyYqx4LHqt/eyoaxDHXEA=",
+ "dev": true,
+ "requires": {
+ "@sinonjs/commons": "^1.7.0"
+ }
+ },
+ "@stylelint/postcss-css-in-js": {
+ "version": "0.37.2",
+ "resolved": "https://registry.npm.taobao.org/@stylelint/postcss-css-in-js/download/@stylelint/postcss-css-in-js-0.37.2.tgz",
+ "integrity": "sha1-flqErRgfQjSiSAgDQipHuHSa89I=",
+ "dev": true,
+ "requires": {
+ "@babel/core": ">=7.9.0"
+ }
+ },
+ "@stylelint/postcss-markdown": {
+ "version": "0.36.1",
+ "resolved": "https://registry.npm.taobao.org/@stylelint/postcss-markdown/download/@stylelint/postcss-markdown-0.36.1.tgz",
+ "integrity": "sha1-gpuH5sDxCAFFM9nXuYfcnvtmMug=",
+ "dev": true,
+ "requires": {
+ "remark": "^12.0.0",
+ "unist-util-find-all-after": "^3.0.1"
+ },
+ "dependencies": {
+ "is-buffer": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-2.0.5.tgz?cache=0&sync_timestamp=1604429452232&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-buffer%2Fdownload%2Fis-buffer-2.0.5.tgz",
+ "integrity": "sha1-68JS5ADSL/jXf6CYiIIaJKZYwZE=",
+ "dev": true
+ },
+ "is-plain-obj": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/is-plain-obj/download/is-plain-obj-2.1.0.tgz?cache=0&sync_timestamp=1602541991817&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-plain-obj%2Fdownload%2Fis-plain-obj-2.1.0.tgz",
+ "integrity": "sha1-ReQuN/zPH0Dajl927iFRWEDAkoc=",
+ "dev": true
+ },
+ "markdown-table": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/markdown-table/download/markdown-table-2.0.0.tgz",
+ "integrity": "sha1-GUqQztJtMf51PYuUNEMCFMARhls=",
+ "dev": true,
+ "requires": {
+ "repeat-string": "^1.0.0"
+ }
+ },
+ "mdast-util-compact": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/mdast-util-compact/download/mdast-util-compact-2.0.1.tgz",
+ "integrity": "sha1-yrxpovQxA2KDJvNbGs9zXVXJlJA=",
+ "dev": true,
+ "requires": {
+ "unist-util-visit": "^2.0.0"
+ }
+ },
+ "parse-entities": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/parse-entities/download/parse-entities-2.0.0.tgz",
+ "integrity": "sha1-U8brW5MUofTsmfoP33zgHs2gy+g=",
+ "dev": true,
+ "requires": {
+ "character-entities": "^1.0.0",
+ "character-entities-legacy": "^1.0.0",
+ "character-reference-invalid": "^1.0.0",
+ "is-alphanumerical": "^1.0.0",
+ "is-decimal": "^1.0.0",
+ "is-hexadecimal": "^1.0.0"
+ }
+ },
+ "remark": {
+ "version": "12.0.1",
+ "resolved": "https://registry.npm.taobao.org/remark/download/remark-12.0.1.tgz?cache=0&sync_timestamp=1602663771669&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fremark%2Fdownload%2Fremark-12.0.1.tgz",
+ "integrity": "sha1-8d32jbe+ccorrQozzTZ4uGuccJ8=",
+ "dev": true,
+ "requires": {
+ "remark-parse": "^8.0.0",
+ "remark-stringify": "^8.0.0",
+ "unified": "^9.0.0"
+ }
+ },
+ "remark-parse": {
+ "version": "8.0.3",
+ "resolved": "https://registry.npm.taobao.org/remark-parse/download/remark-parse-8.0.3.tgz?cache=0&sync_timestamp=1602663568829&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fremark-parse%2Fdownload%2Fremark-parse-8.0.3.tgz",
+ "integrity": "sha1-nGKqOzW3mkhkVMaQRykGB19Ax+E=",
+ "dev": true,
+ "requires": {
+ "ccount": "^1.0.0",
+ "collapse-white-space": "^1.0.2",
+ "is-alphabetical": "^1.0.0",
+ "is-decimal": "^1.0.0",
+ "is-whitespace-character": "^1.0.0",
+ "is-word-character": "^1.0.0",
+ "markdown-escapes": "^1.0.0",
+ "parse-entities": "^2.0.0",
+ "repeat-string": "^1.5.4",
+ "state-toggle": "^1.0.0",
+ "trim": "0.0.1",
+ "trim-trailing-lines": "^1.0.0",
+ "unherit": "^1.0.4",
+ "unist-util-remove-position": "^2.0.0",
+ "vfile-location": "^3.0.0",
+ "xtend": "^4.0.1"
+ }
+ },
+ "remark-stringify": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npm.taobao.org/remark-stringify/download/remark-stringify-8.1.1.tgz?cache=0&sync_timestamp=1602663716084&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fremark-stringify%2Fdownload%2Fremark-stringify-8.1.1.tgz",
+ "integrity": "sha1-4qncenv0TkahVex4mW24lngNjOU=",
+ "dev": true,
+ "requires": {
+ "ccount": "^1.0.0",
+ "is-alphanumeric": "^1.0.0",
+ "is-decimal": "^1.0.0",
+ "is-whitespace-character": "^1.0.0",
+ "longest-streak": "^2.0.1",
+ "markdown-escapes": "^1.0.0",
+ "markdown-table": "^2.0.0",
+ "mdast-util-compact": "^2.0.0",
+ "parse-entities": "^2.0.0",
+ "repeat-string": "^1.5.4",
+ "state-toggle": "^1.0.0",
+ "stringify-entities": "^3.0.0",
+ "unherit": "^1.0.4",
+ "xtend": "^4.0.1"
+ }
+ },
+ "stringify-entities": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npm.taobao.org/stringify-entities/download/stringify-entities-3.1.0.tgz?cache=0&sync_timestamp=1603096784534&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstringify-entities%2Fdownload%2Fstringify-entities-3.1.0.tgz",
+ "integrity": "sha1-uNP+rCVtn/zJ+h/v3PPKcFdu6QM=",
+ "dev": true,
+ "requires": {
+ "character-entities-html4": "^1.0.0",
+ "character-entities-legacy": "^1.0.0",
+ "xtend": "^4.0.0"
+ }
+ },
+ "unified": {
+ "version": "9.2.0",
+ "resolved": "https://registry.npm.taobao.org/unified/download/unified-9.2.0.tgz?cache=0&sync_timestamp=1598031761770&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funified%2Fdownload%2Funified-9.2.0.tgz",
+ "integrity": "sha1-Z6YsYnxAWJ7eu/YPU+39TYIgJ/g=",
+ "dev": true,
+ "requires": {
+ "bail": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-buffer": "^2.0.0",
+ "is-plain-obj": "^2.0.0",
+ "trough": "^1.0.0",
+ "vfile": "^4.0.0"
+ }
+ },
+ "unist-util-find-all-after": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npm.taobao.org/unist-util-find-all-after/download/unist-util-find-all-after-3.0.2.tgz",
+ "integrity": "sha1-/f7NFMW3rqXp7zjV4NX3dO61YfY=",
+ "dev": true,
+ "requires": {
+ "unist-util-is": "^4.0.0"
+ }
+ },
+ "unist-util-is": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npm.taobao.org/unist-util-is/download/unist-util-is-4.0.3.tgz?cache=0&sync_timestamp=1604050976793&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funist-util-is%2Fdownload%2Funist-util-is-4.0.3.tgz",
+ "integrity": "sha1-6LRNtV/CDEN1KzNGwRY0TUXXyR0=",
+ "dev": true
+ },
+ "unist-util-remove-position": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/unist-util-remove-position/download/unist-util-remove-position-2.0.1.tgz",
+ "integrity": "sha1-XRnKef26cSMBmZsrc1U8qPOzUsw=",
+ "dev": true,
+ "requires": {
+ "unist-util-visit": "^2.0.0"
+ }
+ },
+ "unist-util-visit": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npm.taobao.org/unist-util-visit/download/unist-util-visit-2.0.3.tgz?cache=0&sync_timestamp=1594459284890&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funist-util-visit%2Fdownload%2Funist-util-visit-2.0.3.tgz",
+ "integrity": "sha1-w3A4kxRt9HIDu4qXla9H17lxIIw=",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^2.0.0",
+ "unist-util-is": "^4.0.0",
+ "unist-util-visit-parents": "^3.0.0"
+ }
+ },
+ "unist-util-visit-parents": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npm.taobao.org/unist-util-visit-parents/download/unist-util-visit-parents-3.1.1.tgz?cache=0&sync_timestamp=1603108482643&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funist-util-visit-parents%2Fdownload%2Funist-util-visit-parents-3.1.1.tgz",
+ "integrity": "sha1-ZabOaY94prD1aqDojxOAGIbNrvY=",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^2.0.0",
+ "unist-util-is": "^4.0.0"
+ }
+ },
+ "vfile": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npm.taobao.org/vfile/download/vfile-4.2.0.tgz?cache=0&sync_timestamp=1596111341065&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvfile%2Fdownload%2Fvfile-4.2.0.tgz",
+ "integrity": "sha1-JseKyS63CBawHUVl4AO35loqDgE=",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^2.0.0",
+ "is-buffer": "^2.0.0",
+ "replace-ext": "1.0.0",
+ "unist-util-stringify-position": "^2.0.0",
+ "vfile-message": "^2.0.0"
+ }
+ },
+ "vfile-location": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npm.taobao.org/vfile-location/download/vfile-location-3.2.0.tgz?cache=0&sync_timestamp=1604225085911&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvfile-location%2Fdownload%2Fvfile-location-3.2.0.tgz",
+ "integrity": "sha1-2OQfvL1AYGNmnr9sM9Vq6HIdDzw=",
+ "dev": true
+ }
+ }
+ },
+ "@types/babel__core": {
+ "version": "7.1.12",
+ "resolved": "https://registry.npm.taobao.org/@types/babel__core/download/@types/babel__core-7.1.12.tgz",
+ "integrity": "sha1-TY6eUesmVVKn5PH/IhmrYTO9+y0=",
+ "dev": true,
+ "requires": {
+ "@babel/parser": "^7.1.0",
+ "@babel/types": "^7.0.0",
+ "@types/babel__generator": "*",
+ "@types/babel__template": "*",
+ "@types/babel__traverse": "*"
+ }
+ },
+ "@types/babel__generator": {
+ "version": "7.6.2",
+ "resolved": "https://registry.npm.taobao.org/@types/babel__generator/download/@types/babel__generator-7.6.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fbabel__generator%2Fdownload%2F%40types%2Fbabel__generator-7.6.2.tgz",
+ "integrity": "sha1-89cReOGHhY98ReMDgPjxt0FaEtg=",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@types/babel__template": {
+ "version": "7.4.0",
+ "resolved": "https://registry.npm.taobao.org/@types/babel__template/download/@types/babel__template-7.4.0.tgz",
+ "integrity": "sha1-DIiN1ws+6e67bk8gDoCdoAdiYr4=",
+ "dev": true,
+ "requires": {
+ "@babel/parser": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@types/babel__traverse": {
+ "version": "7.0.15",
+ "resolved": "https://registry.npm.taobao.org/@types/babel__traverse/download/@types/babel__traverse-7.0.15.tgz",
+ "integrity": "sha1-255COJMetp74qrCtZSPU1MqjnQM=",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.3.0"
+ }
+ },
+ "@types/cookie": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npm.taobao.org/@types/cookie/download/@types/cookie-0.3.3.tgz?cache=0&sync_timestamp=1605053525369&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fcookie%2Fdownload%2F%40types%2Fcookie-0.3.3.tgz",
+ "integrity": "sha1-hbx0ungvt6o6UU0RdngysOO8aAM=",
+ "dev": true
+ },
+ "@types/eslint-visitor-keys": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/@types/eslint-visitor-keys/download/@types/eslint-visitor-keys-1.0.0.tgz",
+ "integrity": "sha1-HuMNeVRMqE1o1LPNsK9PIFZj3S0=",
+ "dev": true
+ },
+ "@types/glob": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npm.taobao.org/@types/glob/download/@types/glob-7.1.3.tgz?cache=0&sync_timestamp=1605053412496&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fglob%2Fdownload%2F%40types%2Fglob-7.1.3.tgz",
+ "integrity": "sha1-5rqA82t9qtLGhazZJmOC5omFwYM=",
+ "dev": true,
+ "requires": {
+ "@types/minimatch": "*",
+ "@types/node": "*"
+ }
+ },
+ "@types/graceful-fs": {
+ "version": "4.1.4",
+ "resolved": "https://registry.npm.taobao.org/@types/graceful-fs/download/@types/graceful-fs-4.1.4.tgz?cache=0&sync_timestamp=1605053615976&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fgraceful-fs%2Fdownload%2F%40types%2Fgraceful-fs-4.1.4.tgz",
+ "integrity": "sha1-T/n2QafG0aNQj/iLwxQbFSdy51M=",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/istanbul-lib-coverage": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npm.taobao.org/@types/istanbul-lib-coverage/download/@types/istanbul-lib-coverage-2.0.3.tgz?cache=0&sync_timestamp=1605054056155&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fistanbul-lib-coverage%2Fdownload%2F%40types%2Fistanbul-lib-coverage-2.0.3.tgz",
+ "integrity": "sha1-S6jdtyAiH0MuRDvV+RF/0iz9R2I=",
+ "dev": true
+ },
+ "@types/istanbul-lib-report": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/@types/istanbul-lib-report/download/@types/istanbul-lib-report-3.0.0.tgz?cache=0&sync_timestamp=1605054055971&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fistanbul-lib-report%2Fdownload%2F%40types%2Fistanbul-lib-report-3.0.0.tgz",
+ "integrity": "sha1-wUwk8Y6oGQwRjudWK3/5mjZVJoY=",
+ "dev": true,
+ "requires": {
+ "@types/istanbul-lib-coverage": "*"
+ }
+ },
+ "@types/istanbul-reports": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/@types/istanbul-reports/download/@types/istanbul-reports-3.0.0.tgz?cache=0&sync_timestamp=1605054056153&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fistanbul-reports%2Fdownload%2F%40types%2Fistanbul-reports-3.0.0.tgz",
+ "integrity": "sha1-UIsTqjRPpJdiNOdd3cw0klc32CE=",
+ "dev": true,
+ "requires": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "@types/json-schema": {
+ "version": "7.0.6",
+ "resolved": "https://registry.npm.taobao.org/@types/json-schema/download/@types/json-schema-7.0.6.tgz?cache=0&sync_timestamp=1605053861867&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fjson-schema%2Fdownload%2F%40types%2Fjson-schema-7.0.6.tgz",
+ "integrity": "sha1-9MfsQ+gbMZqYFRFQMXCfJph4kfA=",
+ "dev": true
+ },
+ "@types/json5": {
+ "version": "0.0.29",
+ "resolved": "https://registry.npm.taobao.org/@types/json5/download/@types/json5-0.0.29.tgz?cache=0&sync_timestamp=1605054241417&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fjson5%2Fdownload%2F%40types%2Fjson5-0.0.29.tgz",
+ "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=",
+ "dev": true
+ },
+ "@types/minimatch": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npm.taobao.org/@types/minimatch/download/@types/minimatch-3.0.3.tgz",
+ "integrity": "sha1-PcoOPzOyAPx9ETnAzZbBJoyt/Z0=",
+ "dev": true
+ },
+ "@types/minimist": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npm.taobao.org/@types/minimist/download/@types/minimist-1.2.1.tgz",
+ "integrity": "sha1-KD9mn/dte4Jg34q3pCYsyD2YglY=",
+ "dev": true
+ },
+ "@types/node": {
+ "version": "14.14.7",
+ "resolved": "https://registry.npm.taobao.org/@types/node/download/@types/node-14.14.7.tgz",
+ "integrity": "sha1-jqHo+OriQwz0QFZLmMbfzh7FlF0=",
+ "dev": true
+ },
+ "@types/normalize-package-data": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npm.taobao.org/@types/normalize-package-data/download/@types/normalize-package-data-2.4.0.tgz?cache=0&sync_timestamp=1605054933259&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnormalize-package-data%2Fdownload%2F%40types%2Fnormalize-package-data-2.4.0.tgz",
+ "integrity": "sha1-5IbQ2XOW15vu3QpuM/RTT/a0lz4=",
+ "dev": true
+ },
+ "@types/npmlog": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npm.taobao.org/@types/npmlog/download/@types/npmlog-4.1.2.tgz?cache=0&sync_timestamp=1605055837348&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnpmlog%2Fdownload%2F%40types%2Fnpmlog-4.1.2.tgz",
+ "integrity": "sha1-0HD+amt4dV0QkqPcSS00w9j4ccQ=",
+ "dev": true
+ },
+ "@types/parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/@types/parse-json/download/@types/parse-json-4.0.0.tgz?cache=0&sync_timestamp=1605054934191&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fparse-json%2Fdownload%2F%40types%2Fparse-json-4.0.0.tgz",
+ "integrity": "sha1-L4u0QUNNFjs1+4/9zNcTiSf/uMA=",
+ "dev": true
+ },
+ "@types/prettier": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npm.taobao.org/@types/prettier/download/@types/prettier-2.1.5.tgz",
+ "integrity": "sha1-tqs7uinha4IdhOCez63tRiuBawA=",
+ "dev": true
+ },
+ "@types/prop-types": {
+ "version": "15.7.3",
+ "resolved": "https://registry.npm.taobao.org/@types/prop-types/download/@types/prop-types-15.7.3.tgz?cache=0&sync_timestamp=1605055388480&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fprop-types%2Fdownload%2F%40types%2Fprop-types-15.7.3.tgz",
+ "integrity": "sha1-KrDV2i5YFflLC51LldHl8kOrLKc="
+ },
+ "@types/q": {
+ "version": "1.5.4",
+ "resolved": "https://registry.npm.taobao.org/@types/q/download/@types/q-1.5.4.tgz?cache=0&sync_timestamp=1605055096527&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fq%2Fdownload%2F%40types%2Fq-1.5.4.tgz",
+ "integrity": "sha1-FZJUFOCtLNdlv+9YhC9+JqesyyQ=",
+ "dev": true
+ },
+ "@types/react": {
+ "version": "16.9.56",
+ "resolved": "https://registry.npm.taobao.org/@types/react/download/@types/react-16.9.56.tgz?cache=0&sync_timestamp=1604651654114&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact%2Fdownload%2F%40types%2Freact-16.9.56.tgz",
+ "integrity": "sha1-6iWEe1PFvsBkkzCV/DZrFGLirfA=",
+ "requires": {
+ "@types/prop-types": "*",
+ "csstype": "^3.0.2"
+ }
+ },
+ "@types/react-dom": {
+ "version": "16.9.9",
+ "resolved": "https://registry.npm.taobao.org/@types/react-dom/download/@types/react-dom-16.9.9.tgz?cache=0&sync_timestamp=1605055329509&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-dom%2Fdownload%2F%40types%2Freact-dom-16.9.9.tgz",
+ "integrity": "sha1-0tCm9yCgIGNpzL7/91K6N7lYMTY=",
+ "requires": {
+ "@types/react": "*"
+ }
+ },
+ "@types/stack-utils": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/@types/stack-utils/download/@types/stack-utils-2.0.0.tgz",
+ "integrity": "sha1-cDZkC04hzC8lmugmzoQ9J32tjP8=",
+ "dev": true
+ },
+ "@types/unist": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npm.taobao.org/@types/unist/download/@types/unist-2.0.3.tgz",
+ "integrity": "sha1-nAiGeYdvN061mD8VDUeHqm+zLX4=",
+ "dev": true
+ },
+ "@types/url-parse": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npm.taobao.org/@types/url-parse/download/@types/url-parse-1.4.3.tgz?cache=0&sync_timestamp=1605057382227&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Furl-parse%2Fdownload%2F%40types%2Furl-parse-1.4.3.tgz",
+ "integrity": "sha1-+6SdkPg0lRywAKZ07+49byCWgyk=",
+ "dev": true
+ },
+ "@types/vfile": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npm.taobao.org/@types/vfile/download/@types/vfile-3.0.2.tgz",
+ "integrity": "sha1-GcGM0jLfEc5vpq2AJZvIbDZrCbk=",
+ "dev": true,
+ "requires": {
+ "@types/node": "*",
+ "@types/unist": "*",
+ "@types/vfile-message": "*"
+ }
+ },
+ "@types/vfile-message": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/@types/vfile-message/download/@types/vfile-message-2.0.0.tgz",
+ "integrity": "sha1-aQ5Grw/fwfn6rgDNBJzIiJV5J9U=",
+ "dev": true,
+ "requires": {
+ "vfile-message": "*"
+ }
+ },
+ "@types/yargs": {
+ "version": "15.0.9",
+ "resolved": "https://registry.npm.taobao.org/@types/yargs/download/@types/yargs-15.0.9.tgz?cache=0&sync_timestamp=1605057458388&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fyargs%2Fdownload%2F%40types%2Fyargs-15.0.9.tgz",
+ "integrity": "sha1-UkzXmY/oEM2wLyYQG2mczNFW/xk=",
+ "dev": true,
+ "requires": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "@types/yargs-parser": {
+ "version": "15.0.0",
+ "resolved": "https://registry.npm.taobao.org/@types/yargs-parser/download/@types/yargs-parser-15.0.0.tgz?cache=0&sync_timestamp=1605057457263&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fyargs-parser%2Fdownload%2F%40types%2Fyargs-parser-15.0.0.tgz",
+ "integrity": "sha1-yz+fdBhp4gzOMw/765JxWQSDiC0=",
+ "dev": true
+ },
+ "@typescript-eslint/eslint-plugin": {
+ "version": "2.34.0",
+ "resolved": "https://registry.npm.taobao.org/@typescript-eslint/eslint-plugin/download/@typescript-eslint/eslint-plugin-2.34.0.tgz",
+ "integrity": "sha1-b4zopGx96kpvHRcdK7j7rm2sK+k=",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/experimental-utils": "2.34.0",
+ "functional-red-black-tree": "^1.0.1",
+ "regexpp": "^3.0.0",
+ "tsutils": "^3.17.1"
+ }
+ },
+ "@typescript-eslint/experimental-utils": {
+ "version": "2.34.0",
+ "resolved": "https://registry.npm.taobao.org/@typescript-eslint/experimental-utils/download/@typescript-eslint/experimental-utils-2.34.0.tgz?cache=0&sync_timestamp=1605227301184&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40typescript-eslint%2Fexperimental-utils%2Fdownload%2F%40typescript-eslint%2Fexperimental-utils-2.34.0.tgz",
+ "integrity": "sha1-01JLZEzbQO687KZ/jPPkzJyPmA8=",
+ "dev": true,
+ "requires": {
+ "@types/json-schema": "^7.0.3",
+ "@typescript-eslint/typescript-estree": "2.34.0",
+ "eslint-scope": "^5.0.0",
+ "eslint-utils": "^2.0.0"
+ }
+ },
+ "@typescript-eslint/parser": {
+ "version": "2.34.0",
+ "resolved": "https://registry.npm.taobao.org/@typescript-eslint/parser/download/@typescript-eslint/parser-2.34.0.tgz",
+ "integrity": "sha1-UCUmMMoxloVCDpo5ygX+GFola8g=",
+ "dev": true,
+ "requires": {
+ "@types/eslint-visitor-keys": "^1.0.0",
+ "@typescript-eslint/experimental-utils": "2.34.0",
+ "@typescript-eslint/typescript-estree": "2.34.0",
+ "eslint-visitor-keys": "^1.1.0"
+ }
+ },
+ "@typescript-eslint/typescript-estree": {
+ "version": "2.34.0",
+ "resolved": "https://registry.npm.taobao.org/@typescript-eslint/typescript-estree/download/@typescript-eslint/typescript-estree-2.34.0.tgz?cache=0&sync_timestamp=1605227303561&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40typescript-eslint%2Ftypescript-estree%2Fdownload%2F%40typescript-eslint%2Ftypescript-estree-2.34.0.tgz",
+ "integrity": "sha1-FK62NTs57wcyzH8bgoUpSTfPN9U=",
+ "dev": true,
+ "requires": {
+ "debug": "^4.1.1",
+ "eslint-visitor-keys": "^1.1.0",
+ "glob": "^7.1.6",
+ "is-glob": "^4.0.1",
+ "lodash": "^4.17.15",
+ "semver": "^7.3.2",
+ "tsutils": "^3.17.1"
+ }
+ },
+ "@webassemblyjs/ast": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npm.taobao.org/@webassemblyjs/ast/download/@webassemblyjs/ast-1.9.0.tgz?cache=0&sync_timestamp=1601756233286&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fast%2Fdownload%2F%40webassemblyjs%2Fast-1.9.0.tgz",
+ "integrity": "sha1-vYUGBLQEJFmlpBzX0zjL7Wle2WQ=",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/helper-module-context": "1.9.0",
+ "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+ "@webassemblyjs/wast-parser": "1.9.0"
+ }
+ },
+ "@webassemblyjs/floating-point-hex-parser": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npm.taobao.org/@webassemblyjs/floating-point-hex-parser/download/@webassemblyjs/floating-point-hex-parser-1.9.0.tgz?cache=0&sync_timestamp=1601756232132&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Ffloating-point-hex-parser%2Fdownload%2F%40webassemblyjs%2Ffloating-point-hex-parser-1.9.0.tgz",
+ "integrity": "sha1-PD07Jxvd/ITesA9xNEQ4MR1S/7Q=",
+ "dev": true
+ },
+ "@webassemblyjs/helper-api-error": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-api-error/download/@webassemblyjs/helper-api-error-1.9.0.tgz?cache=0&sync_timestamp=1601756232631&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-api-error%2Fdownload%2F%40webassemblyjs%2Fhelper-api-error-1.9.0.tgz",
+ "integrity": "sha1-ID9nbjM7lsnaLuqzzO8zxFkotqI=",
+ "dev": true
+ },
+ "@webassemblyjs/helper-buffer": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-buffer/download/@webassemblyjs/helper-buffer-1.9.0.tgz?cache=0&sync_timestamp=1601756248143&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-buffer%2Fdownload%2F%40webassemblyjs%2Fhelper-buffer-1.9.0.tgz",
+ "integrity": "sha1-oUQtJpxf6yP8vJ73WdrDVH8p3gA=",
+ "dev": true
+ },
+ "@webassemblyjs/helper-code-frame": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-code-frame/download/@webassemblyjs/helper-code-frame-1.9.0.tgz?cache=0&sync_timestamp=1601756233909&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-code-frame%2Fdownload%2F%40webassemblyjs%2Fhelper-code-frame-1.9.0.tgz",
+ "integrity": "sha1-ZH+Iks0gQ6gqwMjF51w28dkVnyc=",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/wast-printer": "1.9.0"
+ }
+ },
+ "@webassemblyjs/helper-fsm": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-fsm/download/@webassemblyjs/helper-fsm-1.9.0.tgz?cache=0&sync_timestamp=1601756231939&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-fsm%2Fdownload%2F%40webassemblyjs%2Fhelper-fsm-1.9.0.tgz",
+ "integrity": "sha1-wFJWtxJEIUZx9LCOwQitY7cO3bg=",
+ "dev": true
+ },
+ "@webassemblyjs/helper-module-context": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-module-context/download/@webassemblyjs/helper-module-context-1.9.0.tgz?cache=0&sync_timestamp=1601756234776&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-module-context%2Fdownload%2F%40webassemblyjs%2Fhelper-module-context-1.9.0.tgz",
+ "integrity": "sha1-JdiIS3aDmHGgimxvgGw5ee9xLwc=",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.9.0"
+ }
+ },
+ "@webassemblyjs/helper-wasm-bytecode": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-bytecode/download/@webassemblyjs/helper-wasm-bytecode-1.9.0.tgz?cache=0&sync_timestamp=1601756232301&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-bytecode%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-bytecode-1.9.0.tgz",
+ "integrity": "sha1-T+2L6sm4wU+MWLcNEk1UndH+V5A=",
+ "dev": true
+ },
+ "@webassemblyjs/helper-wasm-section": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-section/download/@webassemblyjs/helper-wasm-section-1.9.0.tgz?cache=0&sync_timestamp=1601756234204&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-section%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-section-1.9.0.tgz",
+ "integrity": "sha1-WkE41aYpK6GLBMWuSXF+QWeWU0Y=",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/helper-buffer": "1.9.0",
+ "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+ "@webassemblyjs/wasm-gen": "1.9.0"
+ }
+ },
+ "@webassemblyjs/ieee754": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npm.taobao.org/@webassemblyjs/ieee754/download/@webassemblyjs/ieee754-1.9.0.tgz?cache=0&sync_timestamp=1601756232741&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fieee754%2Fdownload%2F%40webassemblyjs%2Fieee754-1.9.0.tgz",
+ "integrity": "sha1-Fceg+6roP7JhQ7us9tbfFwKtOeQ=",
+ "dev": true,
+ "requires": {
+ "@xtuc/ieee754": "^1.2.0"
+ }
+ },
+ "@webassemblyjs/leb128": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npm.taobao.org/@webassemblyjs/leb128/download/@webassemblyjs/leb128-1.9.0.tgz?cache=0&sync_timestamp=1601756232514&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fleb128%2Fdownload%2F%40webassemblyjs%2Fleb128-1.9.0.tgz",
+ "integrity": "sha1-8Zygt2ptxVYjoJz/p2noOPoeHJU=",
+ "dev": true,
+ "requires": {
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "@webassemblyjs/utf8": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npm.taobao.org/@webassemblyjs/utf8/download/@webassemblyjs/utf8-1.9.0.tgz?cache=0&sync_timestamp=1601756233013&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Futf8%2Fdownload%2F%40webassemblyjs%2Futf8-1.9.0.tgz",
+ "integrity": "sha1-BNM7Y2945qaBMifoJAL3Y3tiKas=",
+ "dev": true
+ },
+ "@webassemblyjs/wasm-edit": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-edit/download/@webassemblyjs/wasm-edit-1.9.0.tgz?cache=0&sync_timestamp=1601756233442&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-edit%2Fdownload%2F%40webassemblyjs%2Fwasm-edit-1.9.0.tgz",
+ "integrity": "sha1-P+bXnT8PkiGDqoYALELdJWz+6c8=",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/helper-buffer": "1.9.0",
+ "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+ "@webassemblyjs/helper-wasm-section": "1.9.0",
+ "@webassemblyjs/wasm-gen": "1.9.0",
+ "@webassemblyjs/wasm-opt": "1.9.0",
+ "@webassemblyjs/wasm-parser": "1.9.0",
+ "@webassemblyjs/wast-printer": "1.9.0"
+ }
+ },
+ "@webassemblyjs/wasm-gen": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-gen/download/@webassemblyjs/wasm-gen-1.9.0.tgz?cache=0&sync_timestamp=1601756234341&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-gen%2Fdownload%2F%40webassemblyjs%2Fwasm-gen-1.9.0.tgz",
+ "integrity": "sha1-ULxw7Gje2OJ2OwGhQYv0NJGnpJw=",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+ "@webassemblyjs/ieee754": "1.9.0",
+ "@webassemblyjs/leb128": "1.9.0",
+ "@webassemblyjs/utf8": "1.9.0"
+ }
+ },
+ "@webassemblyjs/wasm-opt": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-opt/download/@webassemblyjs/wasm-opt-1.9.0.tgz?cache=0&sync_timestamp=1601756233142&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-opt%2Fdownload%2F%40webassemblyjs%2Fwasm-opt-1.9.0.tgz",
+ "integrity": "sha1-IhEYHlsxMmRDzIES658LkChyGmE=",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/helper-buffer": "1.9.0",
+ "@webassemblyjs/wasm-gen": "1.9.0",
+ "@webassemblyjs/wasm-parser": "1.9.0"
+ }
+ },
+ "@webassemblyjs/wasm-parser": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-parser/download/@webassemblyjs/wasm-parser-1.9.0.tgz?cache=0&sync_timestamp=1601756233776&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-parser%2Fdownload%2F%40webassemblyjs%2Fwasm-parser-1.9.0.tgz",
+ "integrity": "sha1-nUjkSCbfSmWYKUqmyHRp1kL/9l4=",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/helper-api-error": "1.9.0",
+ "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+ "@webassemblyjs/ieee754": "1.9.0",
+ "@webassemblyjs/leb128": "1.9.0",
+ "@webassemblyjs/utf8": "1.9.0"
+ }
+ },
+ "@webassemblyjs/wast-parser": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wast-parser/download/@webassemblyjs/wast-parser-1.9.0.tgz?cache=0&sync_timestamp=1601756234653&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-parser%2Fdownload%2F%40webassemblyjs%2Fwast-parser-1.9.0.tgz",
+ "integrity": "sha1-MDERXXmsW9JhVWzsw/qQo+9FGRQ=",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/floating-point-hex-parser": "1.9.0",
+ "@webassemblyjs/helper-api-error": "1.9.0",
+ "@webassemblyjs/helper-code-frame": "1.9.0",
+ "@webassemblyjs/helper-fsm": "1.9.0",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "@webassemblyjs/wast-printer": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wast-printer/download/@webassemblyjs/wast-printer-1.9.0.tgz?cache=0&sync_timestamp=1601756233564&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-printer%2Fdownload%2F%40webassemblyjs%2Fwast-printer-1.9.0.tgz",
+ "integrity": "sha1-STXVTIX+9jewDOn1I3dFHQDUeJk=",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/wast-parser": "1.9.0",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "@xtuc/ieee754": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npm.taobao.org/@xtuc/ieee754/download/@xtuc/ieee754-1.2.0.tgz",
+ "integrity": "sha1-7vAUoxRa5Hehy8AM0eVSM23Ot5A=",
+ "dev": true
+ },
+ "@xtuc/long": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npm.taobao.org/@xtuc/long/download/@xtuc/long-4.2.2.tgz",
+ "integrity": "sha1-0pHGpOl5ibXGHZrPOWrk/hM6cY0=",
+ "dev": true
+ },
+ "abab": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npm.taobao.org/abab/download/abab-2.0.5.tgz?cache=0&sync_timestamp=1599850200902&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fabab%2Fdownload%2Fabab-2.0.5.tgz",
+ "integrity": "sha1-wLZ4+zLWD8EhnHhNaoJv44Wut5o=",
+ "dev": true
+ },
+ "abbrev": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npm.taobao.org/abbrev/download/abbrev-1.1.1.tgz",
+ "integrity": "sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg=",
+ "dev": true
+ },
+ "accepts": {
+ "version": "1.3.7",
+ "resolved": "https://registry.npm.taobao.org/accepts/download/accepts-1.3.7.tgz",
+ "integrity": "sha1-UxvHJlF6OytB+FACHGzBXqq1B80=",
+ "dev": true,
+ "requires": {
+ "mime-types": "~2.1.24",
+ "negotiator": "0.6.2"
+ }
+ },
+ "acorn": {
+ "version": "7.4.1",
+ "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-7.4.1.tgz",
+ "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=",
+ "dev": true
+ },
+ "acorn-globals": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npm.taobao.org/acorn-globals/download/acorn-globals-6.0.0.tgz",
+ "integrity": "sha1-Rs3Tnw+P8IqHZhm1X1rIptx3C0U=",
+ "dev": true,
+ "requires": {
+ "acorn": "^7.1.1",
+ "acorn-walk": "^7.1.1"
+ }
+ },
+ "acorn-jsx": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npm.taobao.org/acorn-jsx/download/acorn-jsx-5.3.1.tgz",
+ "integrity": "sha1-/IZh4Rt6wVOcR9v+oucrOvNNJns=",
+ "dev": true
+ },
+ "acorn-walk": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npm.taobao.org/acorn-walk/download/acorn-walk-7.2.0.tgz?cache=0&sync_timestamp=1597235826369&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn-walk%2Fdownload%2Facorn-walk-7.2.0.tgz",
+ "integrity": "sha1-DeiJpgEgOQmw++B7iTjcIdLpZ7w=",
+ "dev": true
+ },
+ "add-asset-html-webpack-plugin": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npm.taobao.org/add-asset-html-webpack-plugin/download/add-asset-html-webpack-plugin-3.1.3.tgz",
+ "integrity": "sha1-vsd9yBgmRKWKDuvK59H56xYtr98=",
+ "dev": true,
+ "requires": {
+ "globby": "^9.0.0",
+ "micromatch": "^3.1.3",
+ "p-each-series": "^1.0.0"
+ },
+ "dependencies": {
+ "p-each-series": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/p-each-series/download/p-each-series-1.0.0.tgz",
+ "integrity": "sha1-kw89Et0fUOdDRFeiLNbwSsatf3E=",
+ "dev": true,
+ "requires": {
+ "p-reduce": "^1.0.0"
+ }
+ }
+ }
+ },
+ "address": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npm.taobao.org/address/download/address-1.1.2.tgz",
+ "integrity": "sha1-vxEWycdYxRt6kz0pa3LCIe2UKLY=",
+ "dev": true
+ },
+ "aggregate-error": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npm.taobao.org/aggregate-error/download/aggregate-error-3.1.0.tgz?cache=0&sync_timestamp=1598049934879&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faggregate-error%2Fdownload%2Faggregate-error-3.1.0.tgz",
+ "integrity": "sha1-kmcP9Q9TWb23o+DUDQ7DDFc3aHo=",
+ "dev": true,
+ "requires": {
+ "clean-stack": "^2.0.0",
+ "indent-string": "^4.0.0"
+ },
+ "dependencies": {
+ "indent-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/indent-string/download/indent-string-4.0.0.tgz",
+ "integrity": "sha1-Yk+PRJfWGbLZdoUx1Y9BIoVNclE=",
+ "dev": true
+ }
+ }
+ },
+ "ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npm.taobao.org/ajv/download/ajv-6.12.6.tgz?cache=0&sync_timestamp=1604996837320&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.6.tgz",
+ "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ajv-errors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/ajv-errors/download/ajv-errors-1.0.1.tgz",
+ "integrity": "sha1-81mGrOuRr63sQQL72FAUlQzvpk0=",
+ "dev": true
+ },
+ "ajv-keywords": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-3.5.2.tgz?cache=0&sync_timestamp=1604565104795&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.5.2.tgz",
+ "integrity": "sha1-MfKdpatuANHC0yms97WSlhTVAU0=",
+ "dev": true
+ },
+ "alphanum-sort": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npm.taobao.org/alphanum-sort/download/alphanum-sort-1.0.2.tgz",
+ "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=",
+ "dev": true
+ },
+ "amdefine": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/amdefine/download/amdefine-1.0.1.tgz",
+ "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
+ "dev": true
+ },
+ "ansi-colors": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npm.taobao.org/ansi-colors/download/ansi-colors-3.2.4.tgz",
+ "integrity": "sha1-46PaS/uubIapwoViXeEkojQCb78=",
+ "dev": true
+ },
+ "ansi-escapes": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-4.3.1.tgz",
+ "integrity": "sha1-pcR8xDGB8fOP/XB2g3cA05VSKmE=",
+ "dev": true,
+ "requires": {
+ "type-fest": "^0.11.0"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npm.taobao.org/type-fest/download/type-fest-0.11.0.tgz?cache=0&sync_timestamp=1605191548126&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-fest%2Fdownload%2Ftype-fest-0.11.0.tgz",
+ "integrity": "sha1-l6vwhyMQ/tiKXEZrJWgVdhReM/E=",
+ "dev": true
+ }
+ }
+ },
+ "ansi-html": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npm.taobao.org/ansi-html/download/ansi-html-0.0.7.tgz",
+ "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=",
+ "dev": true
+ },
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz",
+ "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1601839122515&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz",
+ "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "anymatch": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-3.1.1.tgz",
+ "integrity": "sha1-xV7PAhheJGklk5kxDBc84xIzsUI=",
+ "dev": true,
+ "requires": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ }
+ },
+ "append-field": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/append-field/download/append-field-1.0.0.tgz",
+ "integrity": "sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY=",
+ "dev": true
+ },
+ "aproba": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npm.taobao.org/aproba/download/aproba-1.2.0.tgz",
+ "integrity": "sha1-aALmJk79GMeQobDVF/DyYnvyyUo=",
+ "dev": true
+ },
+ "are-we-there-yet": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npm.taobao.org/are-we-there-yet/download/are-we-there-yet-1.1.5.tgz",
+ "integrity": "sha1-SzXClE8GKov82mZBB2A1D+nd/CE=",
+ "dev": true,
+ "requires": {
+ "delegates": "^1.0.0",
+ "readable-stream": "^2.0.6"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.7.tgz",
+ "integrity": "sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c=",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz",
+ "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=",
+ "dev": true
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz",
+ "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
+ }
+ },
+ "argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npm.taobao.org/argparse/download/argparse-1.0.10.tgz",
+ "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=",
+ "dev": true,
+ "requires": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "aria-query": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npm.taobao.org/aria-query/download/aria-query-4.2.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faria-query%2Fdownload%2Faria-query-4.2.2.tgz",
+ "integrity": "sha1-DSymyazrVriXfp/tau1+FbvS+Ds=",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.10.2",
+ "@babel/runtime-corejs3": "^7.10.2"
+ }
+ },
+ "arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/arr-diff/download/arr-diff-4.0.0.tgz",
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
+ "dev": true
+ },
+ "arr-flatten": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npm.taobao.org/arr-flatten/download/arr-flatten-1.1.0.tgz",
+ "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=",
+ "dev": true
+ },
+ "arr-union": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npm.taobao.org/arr-union/download/arr-union-3.1.0.tgz",
+ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
+ "dev": true
+ },
+ "array-find-index": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npm.taobao.org/array-find-index/download/array-find-index-1.0.2.tgz",
+ "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
+ "dev": true
+ },
+ "array-flatten": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npm.taobao.org/array-flatten/download/array-flatten-2.1.2.tgz",
+ "integrity": "sha1-JO+AoowaiTYX4hSbDG0NeIKTsJk=",
+ "dev": true
+ },
+ "array-ify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/array-ify/download/array-ify-1.0.0.tgz",
+ "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=",
+ "dev": true
+ },
+ "array-includes": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npm.taobao.org/array-includes/download/array-includes-3.1.1.tgz",
+ "integrity": "sha1-zdZ+aFK9+cEhVGB4ZzIlXtJFk0g=",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.0",
+ "is-string": "^1.0.5"
+ }
+ },
+ "array-union": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npm.taobao.org/array-union/download/array-union-1.0.2.tgz",
+ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
+ "dev": true,
+ "requires": {
+ "array-uniq": "^1.0.1"
+ }
+ },
+ "array-uniq": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npm.taobao.org/array-uniq/download/array-uniq-1.0.3.tgz",
+ "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
+ "dev": true
+ },
+ "array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
+ "dev": true
+ },
+ "array.prototype.flat": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npm.taobao.org/array.prototype.flat/download/array.prototype.flat-1.2.3.tgz",
+ "integrity": "sha1-DegrQmsDGNv9uUAInjiwQ9N/bHs=",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.0-next.1"
+ }
+ },
+ "array.prototype.flatmap": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npm.taobao.org/array.prototype.flatmap/download/array.prototype.flatmap-1.2.3.tgz",
+ "integrity": "sha1-HBP4SheFZgQt1j3kQURA25Ii5EM=",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.0-next.1",
+ "function-bind": "^1.1.1"
+ }
+ },
+ "arrify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/arrify/download/arrify-1.0.1.tgz",
+ "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
+ "dev": true
+ },
+ "asap": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npm.taobao.org/asap/download/asap-2.0.6.tgz",
+ "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
+ },
+ "asn1": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npm.taobao.org/asn1/download/asn1-0.2.4.tgz",
+ "integrity": "sha1-jSR136tVO7M+d7VOWeiAu4ziMTY=",
+ "dev": true,
+ "requires": {
+ "safer-buffer": "~2.1.0"
+ }
+ },
+ "asn1.js": {
+ "version": "5.4.1",
+ "resolved": "https://registry.npm.taobao.org/asn1.js/download/asn1.js-5.4.1.tgz",
+ "integrity": "sha1-EamAuE67kXgc41sP3C7ilON4Pwc=",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0",
+ "safer-buffer": "^2.1.0"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.11.9",
+ "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz",
+ "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=",
+ "dev": true
+ }
+ }
+ },
+ "assert": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npm.taobao.org/assert/download/assert-1.5.0.tgz?cache=0&sync_timestamp=1586265311434&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fassert%2Fdownload%2Fassert-1.5.0.tgz",
+ "integrity": "sha1-VcEJqvbgrv2z3EtxJAxwv1dLGOs=",
+ "dev": true,
+ "requires": {
+ "object-assign": "^4.1.1",
+ "util": "0.10.3"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.1.tgz",
+ "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
+ "dev": true
+ },
+ "util": {
+ "version": "0.10.3",
+ "resolved": "https://registry.npm.taobao.org/util/download/util-0.10.3.tgz",
+ "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.1"
+ }
+ }
+ }
+ },
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "dev": true
+ },
+ "assign-symbols": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/assign-symbols/download/assign-symbols-1.0.0.tgz",
+ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
+ "dev": true
+ },
+ "ast-types-flow": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npm.taobao.org/ast-types-flow/download/ast-types-flow-0.0.7.tgz",
+ "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=",
+ "dev": true
+ },
+ "astral-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/astral-regex/download/astral-regex-1.0.0.tgz",
+ "integrity": "sha1-bIw/uCfdQ+45GPJ7gngqt2WKb9k=",
+ "dev": true
+ },
+ "async": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npm.taobao.org/async/download/async-2.6.3.tgz",
+ "integrity": "sha1-1yYl4jRKNlbjo61Pp0n6gymdgv8=",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.14"
+ }
+ },
+ "async-each": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npm.taobao.org/async-each/download/async-each-1.0.3.tgz",
+ "integrity": "sha1-tyfb+H12UWAvBvTUrDh/R9kbDL8=",
+ "dev": true
+ },
+ "async-foreach": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npm.taobao.org/async-foreach/download/async-foreach-0.1.3.tgz",
+ "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=",
+ "dev": true
+ },
+ "async-limiter": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/async-limiter/download/async-limiter-1.0.1.tgz",
+ "integrity": "sha1-3TeelPDbgxCwgpH51kwyCXZmF/0=",
+ "dev": true
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz",
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
+ "dev": true
+ },
+ "at-least-node": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/at-least-node/download/at-least-node-1.0.0.tgz",
+ "integrity": "sha1-YCzUtG6EStTv/JKoARo8RuAjjcI=",
+ "dev": true
+ },
+ "atob": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npm.taobao.org/atob/download/atob-2.1.2.tgz",
+ "integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k=",
+ "dev": true
+ },
+ "autoprefixer": {
+ "version": "9.8.6",
+ "resolved": "https://registry.npm.taobao.org/autoprefixer/download/autoprefixer-9.8.6.tgz",
+ "integrity": "sha1-O3NZTKG/kmYyDFrPFYjXTep0IQ8=",
+ "dev": true,
+ "requires": {
+ "browserslist": "^4.12.0",
+ "caniuse-lite": "^1.0.30001109",
+ "colorette": "^1.2.1",
+ "normalize-range": "^0.1.2",
+ "num2fraction": "^1.2.2",
+ "postcss": "^7.0.32",
+ "postcss-value-parser": "^4.1.0"
+ },
+ "dependencies": {
+ "postcss-value-parser": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-4.1.0.tgz",
+ "integrity": "sha1-RD9qIM7WSBor2k+oUypuVdeJoss=",
+ "dev": true
+ }
+ }
+ },
+ "aws-sign2": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.7.0.tgz",
+ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
+ "dev": true
+ },
+ "aws4": {
+ "version": "1.11.0",
+ "resolved": "https://registry.npm.taobao.org/aws4/download/aws4-1.11.0.tgz?cache=0&sync_timestamp=1604101210422&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faws4%2Fdownload%2Faws4-1.11.0.tgz",
+ "integrity": "sha1-1h9G2DslGSUOJ4Ta9bCUeai0HFk=",
+ "dev": true
+ },
+ "axe-core": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npm.taobao.org/axe-core/download/axe-core-4.0.2.tgz",
+ "integrity": "sha1-x89zeDeKUfzSctPAlmgAKkmQscs=",
+ "dev": true
+ },
+ "axios": {
+ "version": "0.19.2",
+ "resolved": "https://registry.npm.taobao.org/axios/download/axios-0.19.2.tgz?cache=0&sync_timestamp=1603468716105&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faxios%2Fdownload%2Faxios-0.19.2.tgz",
+ "integrity": "sha1-PqNsXYgY0NX4qKl6bTa4bNwAyyc=",
+ "dev": true,
+ "requires": {
+ "follow-redirects": "1.5.10"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz?cache=0&sync_timestamp=1600502871403&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.1.0.tgz",
+ "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "follow-redirects": {
+ "version": "1.5.10",
+ "resolved": "https://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.5.10.tgz?cache=0&sync_timestamp=1597057988030&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.5.10.tgz",
+ "integrity": "sha1-e3qfmuov3/NnhqlP9kPtB/T/Xio=",
+ "dev": true,
+ "requires": {
+ "debug": "=3.1.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "axobject-query": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npm.taobao.org/axobject-query/download/axobject-query-2.2.0.tgz?cache=0&sync_timestamp=1592784810338&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faxobject-query%2Fdownload%2Faxobject-query-2.2.0.tgz",
+ "integrity": "sha1-lD1H4QwLcEqkInXiDt83ImSJib4=",
+ "dev": true
+ },
+ "babel-code-frame": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npm.taobao.org/babel-code-frame/download/babel-code-frame-6.26.0.tgz",
+ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "esutils": "^2.0.2",
+ "js-tokens": "^3.0.2"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz?cache=0&sync_timestamp=1601839122515&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ }
+ },
+ "js-tokens": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npm.taobao.org/js-tokens/download/js-tokens-3.0.2.tgz",
+ "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz?cache=0&sync_timestamp=1598611730985&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "babel-eslint": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npm.taobao.org/babel-eslint/download/babel-eslint-10.1.0.tgz",
+ "integrity": "sha1-aWjlaKkQt4+zd5zdi2rC9HmUMjI=",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "@babel/parser": "^7.7.0",
+ "@babel/traverse": "^7.7.0",
+ "@babel/types": "^7.7.0",
+ "eslint-visitor-keys": "^1.0.0",
+ "resolve": "^1.12.0"
+ }
+ },
+ "babel-jest": {
+ "version": "26.6.3",
+ "resolved": "https://registry.npm.taobao.org/babel-jest/download/babel-jest-26.6.3.tgz",
+ "integrity": "sha1-2H0lywA3V3oMifguV1XF0pPAEFY=",
+ "dev": true,
+ "requires": {
+ "@jest/transform": "^26.6.2",
+ "@jest/types": "^26.6.2",
+ "@types/babel__core": "^7.1.7",
+ "babel-plugin-istanbul": "^6.0.0",
+ "babel-preset-jest": "^26.6.2",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.4",
+ "slash": "^3.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1601839122515&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz",
+ "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz",
+ "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
+ "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
+ "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1596294337050&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz",
+ "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=",
+ "dev": true
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/slash/download/slash-3.0.0.tgz",
+ "integrity": "sha1-ZTm+hwwWWtvVJAIg2+Nh8bxNRjQ=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1598611730985&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz",
+ "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "babel-loader": {
+ "version": "8.2.1",
+ "resolved": "https://registry.npm.taobao.org/babel-loader/download/babel-loader-8.2.1.tgz?cache=0&sync_timestamp=1605043056908&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-loader%2Fdownload%2Fbabel-loader-8.2.1.tgz",
+ "integrity": "sha1-5TMTJUZ36G8nU29QcdgH4B0k7AA=",
+ "dev": true,
+ "requires": {
+ "find-cache-dir": "^2.1.0",
+ "loader-utils": "^1.4.0",
+ "make-dir": "^2.1.0",
+ "pify": "^4.0.1",
+ "schema-utils": "^2.6.5"
+ },
+ "dependencies": {
+ "make-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-2.1.0.tgz",
+ "integrity": "sha1-XwMQ4YuL6JjMBwCSlaMK5B6R5vU=",
+ "dev": true,
+ "requires": {
+ "pify": "^4.0.1",
+ "semver": "^5.6.0"
+ }
+ },
+ "pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz",
+ "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=",
+ "dev": true
+ },
+ "schema-utils": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-2.7.1.tgz",
+ "integrity": "sha1-HKTzLRskxZDCA7jnpQvw6kzTlNc=",
+ "dev": true,
+ "requires": {
+ "@types/json-schema": "^7.0.5",
+ "ajv": "^6.12.4",
+ "ajv-keywords": "^3.5.2"
+ }
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz",
+ "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=",
+ "dev": true
+ }
+ }
+ },
+ "babel-plugin-dynamic-import-node": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npm.taobao.org/babel-plugin-dynamic-import-node/download/babel-plugin-dynamic-import-node-2.3.3.tgz",
+ "integrity": "sha1-hP2hnJduxcbe/vV/lCez3vZuF6M=",
+ "dev": true,
+ "requires": {
+ "object.assign": "^4.1.0"
+ }
+ },
+ "babel-plugin-import": {
+ "version": "1.13.1",
+ "resolved": "https://registry.npm.taobao.org/babel-plugin-import/download/babel-plugin-import-1.13.1.tgz",
+ "integrity": "sha1-9s8ay3bFzjZrriZjrRK9iUMW2Ns=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-imports": "^7.0.0",
+ "@babel/runtime": "^7.0.0"
+ }
+ },
+ "babel-plugin-istanbul": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npm.taobao.org/babel-plugin-istanbul/download/babel-plugin-istanbul-6.0.0.tgz",
+ "integrity": "sha1-4VnM3Jr5XgtXDHW0Vzt8NNZx12U=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@istanbuljs/load-nyc-config": "^1.0.0",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-instrument": "^4.0.0",
+ "test-exclude": "^6.0.0"
+ }
+ },
+ "babel-plugin-jest-hoist": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npm.taobao.org/babel-plugin-jest-hoist/download/babel-plugin-jest-hoist-26.6.2.tgz?cache=0&sync_timestamp=1604319713233&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-jest-hoist%2Fdownload%2Fbabel-plugin-jest-hoist-26.6.2.tgz",
+ "integrity": "sha1-gYW9AwNI0lTG192XQ1Xmoosh5i0=",
+ "dev": true,
+ "requires": {
+ "@babel/template": "^7.3.3",
+ "@babel/types": "^7.3.3",
+ "@types/babel__core": "^7.0.0",
+ "@types/babel__traverse": "^7.0.6"
+ }
+ },
+ "babel-plugin-module-resolver": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/babel-plugin-module-resolver/download/babel-plugin-module-resolver-4.0.0.tgz",
+ "integrity": "sha1-jzo9nUgofcHTsNVZUROtq9NqhH8=",
+ "dev": true,
+ "requires": {
+ "find-babel-config": "^1.2.0",
+ "glob": "^7.1.6",
+ "pkg-up": "^3.1.0",
+ "reselect": "^4.0.0",
+ "resolve": "^1.13.1"
+ }
+ },
+ "babel-preset-current-node-syntax": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/babel-preset-current-node-syntax/download/babel-preset-current-node-syntax-1.0.0.tgz?cache=0&sync_timestamp=1604147849036&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-preset-current-node-syntax%2Fdownload%2Fbabel-preset-current-node-syntax-1.0.0.tgz",
+ "integrity": "sha1-z1/u8pVRJTRxz6gvyOD1Bj3wenc=",
+ "dev": true,
+ "requires": {
+ "@babel/plugin-syntax-async-generators": "^7.8.4",
+ "@babel/plugin-syntax-bigint": "^7.8.3",
+ "@babel/plugin-syntax-class-properties": "^7.8.3",
+ "@babel/plugin-syntax-import-meta": "^7.8.3",
+ "@babel/plugin-syntax-json-strings": "^7.8.3",
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
+ "@babel/plugin-syntax-numeric-separator": "^7.8.3",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.3",
+ "@babel/plugin-syntax-top-level-await": "^7.8.3"
+ }
+ },
+ "babel-preset-jest": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npm.taobao.org/babel-preset-jest/download/babel-preset-jest-26.6.2.tgz?cache=0&sync_timestamp=1604319712402&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-preset-jest%2Fdownload%2Fbabel-preset-jest-26.6.2.tgz",
+ "integrity": "sha1-dHhysRcd8DIlJCZYaIHWLTF5j+4=",
+ "dev": true,
+ "requires": {
+ "babel-plugin-jest-hoist": "^26.6.2",
+ "babel-preset-current-node-syntax": "^1.0.0"
+ }
+ },
+ "babel-runtime": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz",
+ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
+ "requires": {
+ "core-js": "^2.4.0",
+ "regenerator-runtime": "^0.11.0"
+ }
+ },
+ "bail": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npm.taobao.org/bail/download/bail-1.0.5.tgz",
+ "integrity": "sha1-tvoTNASjksvB+MS/Y/WVM1Hnp3Y=",
+ "dev": true
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+ "dev": true
+ },
+ "base": {
+ "version": "0.11.2",
+ "resolved": "https://registry.npm.taobao.org/base/download/base-0.11.2.tgz",
+ "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=",
+ "dev": true,
+ "requires": {
+ "cache-base": "^1.0.1",
+ "class-utils": "^0.3.5",
+ "component-emitter": "^1.2.1",
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.1",
+ "mixin-deep": "^1.2.0",
+ "pascalcase": "^0.1.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz",
+ "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ }
+ }
+ },
+ "base16": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/base16/download/base16-1.0.0.tgz",
+ "integrity": "sha1-4pf2DX7BAUp6lxo568ipjAtoHnA="
+ },
+ "base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npm.taobao.org/base64-js/download/base64-js-1.5.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbase64-js%2Fdownload%2Fbase64-js-1.5.1.tgz",
+ "integrity": "sha1-GxtEAWClv3rUC2UPCVljSBkDkwo=",
+ "dev": true
+ },
+ "batch": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/batch/download/batch-0.6.1.tgz",
+ "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=",
+ "dev": true
+ },
+ "bcrypt-pbkdf": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz",
+ "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
+ "dev": true,
+ "requires": {
+ "tweetnacl": "^0.14.3"
+ }
+ },
+ "bfj": {
+ "version": "6.1.2",
+ "resolved": "https://registry.npm.taobao.org/bfj/download/bfj-6.1.2.tgz",
+ "integrity": "sha1-MlyGGoIryzWKQceKM7jm4ght3n8=",
+ "dev": true,
+ "requires": {
+ "bluebird": "^3.5.5",
+ "check-types": "^8.0.3",
+ "hoopy": "^0.1.4",
+ "tryer": "^1.0.1"
+ }
+ },
+ "big.js": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npm.taobao.org/big.js/download/big.js-5.2.2.tgz",
+ "integrity": "sha1-ZfCvOC9Xi83HQr2cKB6cstd2gyg=",
+ "dev": true
+ },
+ "binary-extensions": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-2.1.0.tgz?cache=0&sync_timestamp=1593261309792&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-2.1.0.tgz",
+ "integrity": "sha1-MPpAyef+B9vIlWeM0ocCTeokHdk=",
+ "dev": true
+ },
+ "bindings": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npm.taobao.org/bindings/download/bindings-1.5.0.tgz",
+ "integrity": "sha1-EDU8npRTNLwFEabZCzj7x8nFBN8=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "file-uri-to-path": "1.0.0"
+ }
+ },
+ "block-stream": {
+ "version": "0.0.9",
+ "resolved": "https://registry.npm.taobao.org/block-stream/download/block-stream-0.0.9.tgz",
+ "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
+ "dev": true,
+ "requires": {
+ "inherits": "~2.0.0"
+ }
+ },
+ "bluebird": {
+ "version": "3.7.2",
+ "resolved": "https://registry.npm.taobao.org/bluebird/download/bluebird-3.7.2.tgz?cache=0&sync_timestamp=1586263933818&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbluebird%2Fdownload%2Fbluebird-3.7.2.tgz",
+ "integrity": "sha1-nyKcFb4nJFT/qXOs4NvueaGww28=",
+ "dev": true
+ },
+ "bn.js": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-5.1.3.tgz",
+ "integrity": "sha1-vsoAVAj2Quvr6oCwQrTRjSrA7ms=",
+ "dev": true
+ },
+ "body-parser": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npm.taobao.org/body-parser/download/body-parser-1.19.0.tgz",
+ "integrity": "sha1-lrJwnlfJxOCab9Zqj9l5hE9p8Io=",
+ "dev": true,
+ "requires": {
+ "bytes": "3.1.0",
+ "content-type": "~1.0.4",
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "http-errors": "1.7.2",
+ "iconv-lite": "0.4.24",
+ "on-finished": "~2.3.0",
+ "qs": "6.7.0",
+ "raw-body": "2.4.0",
+ "type-is": "~1.6.17"
+ },
+ "dependencies": {
+ "bytes": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npm.taobao.org/bytes/download/bytes-3.1.0.tgz",
+ "integrity": "sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY=",
+ "dev": true
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1600502871403&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz",
+ "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.24.tgz",
+ "integrity": "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=",
+ "dev": true,
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ },
+ "qs": {
+ "version": "6.7.0",
+ "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.7.0.tgz",
+ "integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=",
+ "dev": true
+ }
+ }
+ },
+ "bonjour": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npm.taobao.org/bonjour/download/bonjour-3.5.0.tgz",
+ "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=",
+ "dev": true,
+ "requires": {
+ "array-flatten": "^2.1.0",
+ "deep-equal": "^1.0.1",
+ "dns-equal": "^1.0.0",
+ "dns-txt": "^2.0.2",
+ "multicast-dns": "^6.0.1",
+ "multicast-dns-service-types": "^1.1.0"
+ }
+ },
+ "boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/boolbase/download/boolbase-1.0.0.tgz",
+ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=",
+ "dev": true
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz?cache=0&sync_timestamp=1601898189928&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrace-expansion%2Fdownload%2Fbrace-expansion-1.1.11.tgz",
+ "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz",
+ "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=",
+ "dev": true,
+ "requires": {
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "brorand": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npm.taobao.org/brorand/download/brorand-1.1.0.tgz",
+ "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=",
+ "dev": true
+ },
+ "browser-process-hrtime": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/browser-process-hrtime/download/browser-process-hrtime-1.0.0.tgz",
+ "integrity": "sha1-PJtLfXgsgSHlbxAQbYTA0P/JRiY=",
+ "dev": true
+ },
+ "browserify-aes": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npm.taobao.org/browserify-aes/download/browserify-aes-1.2.0.tgz",
+ "integrity": "sha1-Mmc0ZC9APavDADIJhTu3CtQo70g=",
+ "dev": true,
+ "requires": {
+ "buffer-xor": "^1.0.3",
+ "cipher-base": "^1.0.0",
+ "create-hash": "^1.1.0",
+ "evp_bytestokey": "^1.0.3",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "browserify-cipher": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/browserify-cipher/download/browserify-cipher-1.0.1.tgz",
+ "integrity": "sha1-jWR0wbhwv9q807z8wZNKEOlPFfA=",
+ "dev": true,
+ "requires": {
+ "browserify-aes": "^1.0.4",
+ "browserify-des": "^1.0.0",
+ "evp_bytestokey": "^1.0.0"
+ }
+ },
+ "browserify-des": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npm.taobao.org/browserify-des/download/browserify-des-1.0.2.tgz",
+ "integrity": "sha1-OvTx9Zg5QDVy8cZiBDdfen9wPpw=",
+ "dev": true,
+ "requires": {
+ "cipher-base": "^1.0.1",
+ "des.js": "^1.0.0",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "browserify-rsa": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npm.taobao.org/browserify-rsa/download/browserify-rsa-4.1.0.tgz",
+ "integrity": "sha1-sv0Gtbda4pf3zi3GUfkY9b4VjI0=",
+ "dev": true,
+ "requires": {
+ "bn.js": "^5.0.0",
+ "randombytes": "^2.0.1"
+ }
+ },
+ "browserify-sign": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npm.taobao.org/browserify-sign/download/browserify-sign-4.2.1.tgz",
+ "integrity": "sha1-6vSt1G3VS+O7OzbAzxWrvrp5VsM=",
+ "dev": true,
+ "requires": {
+ "bn.js": "^5.1.1",
+ "browserify-rsa": "^4.0.1",
+ "create-hash": "^1.2.0",
+ "create-hmac": "^1.1.7",
+ "elliptic": "^6.5.3",
+ "inherits": "^2.0.4",
+ "parse-asn1": "^5.1.5",
+ "readable-stream": "^3.6.0",
+ "safe-buffer": "^5.2.0"
+ }
+ },
+ "browserify-zlib": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npm.taobao.org/browserify-zlib/download/browserify-zlib-0.2.0.tgz",
+ "integrity": "sha1-KGlFnZqjviRf6P4sofRuLn9U1z8=",
+ "dev": true,
+ "requires": {
+ "pako": "~1.0.5"
+ }
+ },
+ "browserslist": {
+ "version": "4.14.7",
+ "resolved": "https://registry.npm.taobao.org/browserslist/download/browserslist-4.14.7.tgz?cache=0&sync_timestamp=1604944989360&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.14.7.tgz",
+ "integrity": "sha1-wHHBs2IsHC55B5mje7CUc6Q1HLY=",
+ "dev": true,
+ "requires": {
+ "caniuse-lite": "^1.0.30001157",
+ "colorette": "^1.2.1",
+ "electron-to-chromium": "^1.3.591",
+ "escalade": "^3.1.1",
+ "node-releases": "^1.1.66"
+ }
+ },
+ "bser": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npm.taobao.org/bser/download/bser-2.1.1.tgz",
+ "integrity": "sha1-5nh9og7OnQeZhTPP2d5vXDj0vAU=",
+ "dev": true,
+ "requires": {
+ "node-int64": "^0.4.0"
+ }
+ },
+ "buffer": {
+ "version": "4.9.2",
+ "resolved": "https://registry.npm.taobao.org/buffer/download/buffer-4.9.2.tgz?cache=0&sync_timestamp=1604959484032&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuffer%2Fdownload%2Fbuffer-4.9.2.tgz",
+ "integrity": "sha1-Iw6tNEACmIZEhBqwJEr4xEu+Pvg=",
+ "dev": true,
+ "requires": {
+ "base64-js": "^1.0.2",
+ "ieee754": "^1.1.4",
+ "isarray": "^1.0.0"
+ }
+ },
+ "buffer-from": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz",
+ "integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=",
+ "dev": true
+ },
+ "buffer-indexof": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npm.taobao.org/buffer-indexof/download/buffer-indexof-1.1.1.tgz",
+ "integrity": "sha1-Uvq8xqYG0aADAoAmSO9o9jnaJow=",
+ "dev": true
+ },
+ "buffer-xor": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npm.taobao.org/buffer-xor/download/buffer-xor-1.0.3.tgz",
+ "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=",
+ "dev": true
+ },
+ "build-plugin-app-core": {
+ "version": "0.1.23",
+ "resolved": "https://registry.npm.taobao.org/build-plugin-app-core/download/build-plugin-app-core-0.1.23.tgz",
+ "integrity": "sha1-cbiqu2MYpdi9gqnpMuKaupusfa0=",
+ "dev": true,
+ "requires": {
+ "chalk": "^4.0.0",
+ "chokidar": "^3.4.1",
+ "create-app-shared": "^0.1.14",
+ "ejs": "^3.0.1",
+ "fs-extra": "^8.1.0",
+ "globby": "^11.0.0",
+ "history": "^4.9.0",
+ "miniapp-history": "^0.1.0",
+ "miniapp-renderer": "^0.1.4",
+ "prettier": "^2.0.2",
+ "query-string": "^6.13.1",
+ "rax-app-renderer": "^0.1.4",
+ "rax-use-router": "^3.0.0",
+ "react-app-renderer": "0.1.10",
+ "universal-env": "^3.0.0"
+ },
+ "dependencies": {
+ "@nodelib/fs.stat": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npm.taobao.org/@nodelib/fs.stat/download/@nodelib/fs.stat-2.0.3.tgz",
+ "integrity": "sha1-NNxfTKu8cg9OYPdadH5+zWwXW9M=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1601839122515&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz",
+ "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "array-union": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/array-union/download/array-union-2.1.0.tgz",
+ "integrity": "sha1-t5hCCtvrHego2ErNii4j0+/oXo0=",
+ "dev": true
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz",
+ "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz",
+ "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
+ "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
+ "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
+ "dev": true
+ },
+ "dir-glob": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npm.taobao.org/dir-glob/download/dir-glob-3.0.1.tgz",
+ "integrity": "sha1-Vtv3PZkqSpO6FYT0U0Bj/S5BcX8=",
+ "dev": true,
+ "requires": {
+ "path-type": "^4.0.0"
+ }
+ },
+ "fast-glob": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npm.taobao.org/fast-glob/download/fast-glob-3.2.4.tgz?cache=0&sync_timestamp=1592290372789&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-glob%2Fdownload%2Ffast-glob-3.2.4.tgz",
+ "integrity": "sha1-0grvv5lXk4Pn88xmUpFYybmFVNM=",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.0",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.2",
+ "picomatch": "^2.2.1"
+ }
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz",
+ "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "glob-parent": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-5.1.1.tgz",
+ "integrity": "sha1-tsHvQXxOVmPqSY8cRa+saRa7wik=",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ },
+ "globby": {
+ "version": "11.0.1",
+ "resolved": "https://registry.npm.taobao.org/globby/download/globby-11.0.1.tgz",
+ "integrity": "sha1-mivxB6Bo8//qvEmtcCx57ejP01c=",
+ "dev": true,
+ "requires": {
+ "array-union": "^2.1.0",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.1.1",
+ "ignore": "^5.1.4",
+ "merge2": "^1.3.0",
+ "slash": "^3.0.0"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1596294337050&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz",
+ "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=",
+ "dev": true
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz",
+ "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-4.0.2.tgz",
+ "integrity": "sha1-T8sJmb+fvC/L3SEvbWKbmlbDklk=",
+ "dev": true,
+ "requires": {
+ "braces": "^3.0.1",
+ "picomatch": "^2.0.5"
+ }
+ },
+ "path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/path-type/download/path-type-4.0.0.tgz",
+ "integrity": "sha1-hO0BwKe6OAr+CdkKjBgNzZ0DBDs=",
+ "dev": true
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/slash/download/slash-3.0.0.tgz",
+ "integrity": "sha1-ZTm+hwwWWtvVJAIg2+Nh8bxNRjQ=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1598611730985&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz",
+ "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-5.0.1.tgz",
+ "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ }
+ }
+ },
+ "build-plugin-fusion": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npm.taobao.org/build-plugin-fusion/download/build-plugin-fusion-0.1.8.tgz",
+ "integrity": "sha1-JVUBeV5/tHp/y1YVPalLBGihwyw=",
+ "dev": true,
+ "requires": {
+ "babel-plugin-import": "^1.11.2",
+ "babel-plugin-module-resolver": "^4.0.0",
+ "find-root": "^1.1.0",
+ "ice-skin-loader": "^0.3.0-0",
+ "lodash": "^4.17.15",
+ "postcss": "^7.0.32",
+ "postcss-plugin-rpx2vw": "^0.0.2",
+ "resolve-sass-import": "^0.1.0",
+ "semver": "^6.1.0",
+ "webpack-plugin-import": "^0.2.5",
+ "webpack-sources": "^1.3.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz",
+ "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=",
+ "dev": true
+ }
+ }
+ },
+ "build-plugin-ice-config": {
+ "version": "1.7.1",
+ "resolved": "https://registry.npm.taobao.org/build-plugin-ice-config/download/build-plugin-ice-config-1.7.1.tgz",
+ "integrity": "sha1-vLMLxnV19KUDh9Bl9NTDc2wwoWM=",
+ "dev": true,
+ "requires": {
+ "fs-extra": "^8.1.0"
+ }
+ },
+ "build-plugin-ice-helpers": {
+ "version": "1.7.1",
+ "resolved": "https://registry.npm.taobao.org/build-plugin-ice-helpers/download/build-plugin-ice-helpers-1.7.1.tgz",
+ "integrity": "sha1-i4cpu3bE1IziChXNGEtI+8+30fs=",
+ "dev": true,
+ "requires": {
+ "@types/cookie": "^0.3.3",
+ "@types/url-parse": "^1.4.3",
+ "cookie": "^0.4.0",
+ "fs-extra": "^8.1.0",
+ "url-parse": "^1.4.7"
+ },
+ "dependencies": {
+ "cookie": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npm.taobao.org/cookie/download/cookie-0.4.1.tgz?cache=0&sync_timestamp=1587525998658&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcookie%2Fdownload%2Fcookie-0.4.1.tgz",
+ "integrity": "sha1-r9cT/ibr0hupXOth+agRblClN9E=",
+ "dev": true
+ }
+ }
+ },
+ "build-plugin-ice-logger": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npm.taobao.org/build-plugin-ice-logger/download/build-plugin-ice-logger-1.7.2.tgz",
+ "integrity": "sha1-wdgmoHBhAqdI5OSh+bfAckJ3GGY=",
+ "dev": true,
+ "requires": {
+ "fs-extra": "^8.1.0",
+ "loglevel": "^1.6.6"
+ }
+ },
+ "build-plugin-ice-mpa": {
+ "version": "1.7.1",
+ "resolved": "https://registry.npm.taobao.org/build-plugin-ice-mpa/download/build-plugin-ice-mpa-1.7.1.tgz",
+ "integrity": "sha1-TEmVlIgmfOgVtMjG8Bazg+HgazM=",
+ "dev": true,
+ "requires": {
+ "fs-extra": "^8.1.0"
+ }
+ },
+ "build-plugin-ice-request": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npm.taobao.org/build-plugin-ice-request/download/build-plugin-ice-request-1.7.2.tgz",
+ "integrity": "sha1-gNEERdIKc64+/sgkRLw9lfGEdT0=",
+ "dev": true,
+ "requires": {
+ "@ahooksjs/use-request": "^2.0.0",
+ "axios": "^0.19.2",
+ "fs-extra": "^8.1.0"
+ }
+ },
+ "build-plugin-ice-router": {
+ "version": "1.7.5",
+ "resolved": "https://registry.npm.taobao.org/build-plugin-ice-router/download/build-plugin-ice-router-1.7.5.tgz",
+ "integrity": "sha1-ff0ekvUyGe4X+VUAUwD/E5TKB8k=",
+ "dev": true,
+ "requires": {
+ "fs-extra": "^8.1.0",
+ "glob": "^7.1.6",
+ "history": "^4.10.1",
+ "query-string": "^6.12.1",
+ "react": "^16.12.0",
+ "react-dom": "^16.12.0",
+ "react-router-dom": "^5.1.2"
+ }
+ },
+ "build-plugin-ice-ssr": {
+ "version": "1.7.6",
+ "resolved": "https://registry.npm.taobao.org/build-plugin-ice-ssr/download/build-plugin-ice-ssr-1.7.6.tgz",
+ "integrity": "sha1-e9TYbHFvH2BeImfNbCB+hdOMYQ0=",
+ "dev": true,
+ "requires": {
+ "build-scripts-config": "^0.1.6",
+ "chalk": "^4.0.0",
+ "cheerio": "^1.0.0-rc.3",
+ "ejs": "^3.0.1",
+ "fs-extra": "^8.1.0",
+ "html-minifier": "^4.0.0",
+ "parseurl": "^1.3.3"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1601839122515&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz",
+ "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz",
+ "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
+ "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
+ "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1596294337050&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz",
+ "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1598611730985&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz",
+ "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "build-plugin-ice-store": {
+ "version": "1.7.8",
+ "resolved": "https://registry.npm.taobao.org/build-plugin-ice-store/download/build-plugin-ice-store-1.7.8.tgz",
+ "integrity": "sha1-XXk7lFvgWu+fA2ZmuVi1ffod3LM=",
+ "dev": true,
+ "requires": {
+ "@ice/store": "^1.3.1",
+ "ejs": "^3.0.2",
+ "enhanced-resolve": "^4.3.0",
+ "fs-extra": "^8.1.0",
+ "fs-readdir-recursive": "^1.1.0",
+ "loader-utils": "^2.0.0",
+ "prettier": "^2.0.4",
+ "rax-redux": "^1.0.0"
+ },
+ "dependencies": {
+ "json5": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npm.taobao.org/json5/download/json5-2.1.3.tgz",
+ "integrity": "sha1-ybD3+pIzv+WAf+ZvzzpWF+1ZfUM=",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.5"
+ }
+ },
+ "loader-utils": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-2.0.0.tgz",
+ "integrity": "sha1-5MrOW4FtQloWa18JfhDNErNgZLA=",
+ "dev": true,
+ "requires": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^2.1.2"
+ }
+ }
+ }
+ },
+ "build-plugin-icestark": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npm.taobao.org/build-plugin-icestark/download/build-plugin-icestark-1.7.2.tgz",
+ "integrity": "sha1-34oaL95xR8eQsxup2H8p6uuKNGY=",
+ "dev": true,
+ "requires": {
+ "@ice/stark": "^1.3.1",
+ "@ice/stark-app": "^1.2.0",
+ "fs-extra": "^8.1.0",
+ "glob": "^7.1.6"
+ }
+ },
+ "build-plugin-miniapp": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npm.taobao.org/build-plugin-miniapp/download/build-plugin-miniapp-0.1.7.tgz",
+ "integrity": "sha1-9gtn1tDUgKf5OWHH8pwv5yS98y0=",
+ "dev": true,
+ "requires": {
+ "miniapp-builder-shared": "^0.1.1",
+ "miniapp-runtime-config": "^0.1.1"
+ }
+ },
+ "build-plugin-moment-locales": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npm.taobao.org/build-plugin-moment-locales/download/build-plugin-moment-locales-0.1.0.tgz",
+ "integrity": "sha1-ipy7+DMBt5J6IatHHRru3/+rZ2Q=",
+ "dev": true
+ },
+ "build-plugin-react-app": {
+ "version": "1.7.10",
+ "resolved": "https://registry.npm.taobao.org/build-plugin-react-app/download/build-plugin-react-app-1.7.10.tgz",
+ "integrity": "sha1-9dG0NCuAGfQCooxZF3Dzn/6QZFM=",
+ "dev": true,
+ "requires": {
+ "@builder/app-helpers": "^1.0.0",
+ "@builder/user-config": "^0.1.0",
+ "build-scripts-config": "^0.1.0",
+ "chalk": "^4.0.0",
+ "copy-webpack-plugin": "^5.0.4",
+ "core-js": "^3.7.0",
+ "debug": "^4.1.1",
+ "fs-extra": "^8.1.0",
+ "html-webpack-plugin": "^3.2.0",
+ "lodash": "^4.17.15",
+ "mkcert": "^1.2.0",
+ "path-exists": "^4.0.0",
+ "postcss-plugin-rpx2vw": "^0.0.2",
+ "react-dev-utils": "^10.2.1",
+ "webpack-plugin-import": "^0.2.6"
+ },
+ "dependencies": {
+ "@babel/code-frame": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.8.3.tgz",
+ "integrity": "sha1-M+JZA9dIEYFTThLsCiXxa2/PQZ4=",
+ "dev": true,
+ "requires": {
+ "@babel/highlight": "^7.8.3"
+ }
+ },
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-5.0.0.tgz",
+ "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1601839122515&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz",
+ "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "browserslist": {
+ "version": "4.10.0",
+ "resolved": "https://registry.npm.taobao.org/browserslist/download/browserslist-4.10.0.tgz?cache=0&sync_timestamp=1604944989360&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.10.0.tgz",
+ "integrity": "sha1-8XlzeRPq8NK5jkkmrBymoVy8xqk=",
+ "dev": true,
+ "requires": {
+ "caniuse-lite": "^1.0.30001035",
+ "electron-to-chromium": "^1.3.378",
+ "node-releases": "^1.1.52",
+ "pkg-up": "^3.1.0"
+ }
+ },
+ "chalk": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz",
+ "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "cli-width": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npm.taobao.org/cli-width/download/cli-width-2.2.1.tgz",
+ "integrity": "sha1-sEM9C06chH7xiGik7xb9X8gnHEg=",
+ "dev": true
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
+ "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
+ "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
+ "dev": true
+ },
+ "copy-webpack-plugin": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npm.taobao.org/copy-webpack-plugin/download/copy-webpack-plugin-5.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcopy-webpack-plugin%2Fdownload%2Fcopy-webpack-plugin-5.1.2.tgz",
+ "integrity": "sha1-ioieHcr6bJHGzUvhrRWPHTgjuuI=",
+ "dev": true,
+ "requires": {
+ "cacache": "^12.0.3",
+ "find-cache-dir": "^2.1.0",
+ "glob-parent": "^3.1.0",
+ "globby": "^7.1.1",
+ "is-glob": "^4.0.1",
+ "loader-utils": "^1.2.3",
+ "minimatch": "^3.0.4",
+ "normalize-path": "^3.0.0",
+ "p-limit": "^2.2.1",
+ "schema-utils": "^1.0.0",
+ "serialize-javascript": "^4.0.0",
+ "webpack-log": "^2.0.0"
+ }
+ },
+ "core-js": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npm.taobao.org/core-js/download/core-js-3.7.0.tgz?cache=0&sync_timestamp=1604675498528&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-3.7.0.tgz",
+ "integrity": "sha1-sKdhoCSIV3r7+XF55Ggb9JVoUg8=",
+ "dev": true
+ },
+ "cross-spawn": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-7.0.1.tgz",
+ "integrity": "sha1-CrVihuD3wk4VPQTMKqAn5DqaXRQ=",
+ "dev": true,
+ "requires": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ }
+ },
+ "detect-port-alt": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npm.taobao.org/detect-port-alt/download/detect-port-alt-1.1.6.tgz",
+ "integrity": "sha1-JHB96r6TLUo89iEwICfCsmZWgnU=",
+ "dev": true,
+ "requires": {
+ "address": "^1.0.1",
+ "debug": "^2.6.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1600502871403&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz",
+ "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
+ }
+ },
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-8.0.0.tgz?cache=0&sync_timestamp=1603212263242&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Femoji-regex%2Fdownload%2Femoji-regex-8.0.0.tgz",
+ "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=",
+ "dev": true
+ },
+ "emojis-list": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-2.1.0.tgz",
+ "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-2.0.0.tgz?cache=0&sync_timestamp=1587627107924&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-2.0.0.tgz",
+ "integrity": "sha1-owME6Z2qMuI7L9IPUbq9B8/8o0Q=",
+ "dev": true
+ },
+ "filesize": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npm.taobao.org/filesize/download/filesize-6.0.1.tgz",
+ "integrity": "sha1-+FC1CZCcfIb35FDqGQBsMcLtPS8=",
+ "dev": true
+ },
+ "find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz?cache=0&sync_timestamp=1597169862146&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-4.1.0.tgz",
+ "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=",
+ "dev": true,
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "fork-ts-checker-webpack-plugin": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npm.taobao.org/fork-ts-checker-webpack-plugin/download/fork-ts-checker-webpack-plugin-3.1.1.tgz",
+ "integrity": "sha1-oWQsDT5l9QwswXQunAqA9EH4axk=",
+ "dev": true,
+ "requires": {
+ "babel-code-frame": "^6.22.0",
+ "chalk": "^2.4.1",
+ "chokidar": "^3.3.0",
+ "micromatch": "^3.1.10",
+ "minimatch": "^3.0.4",
+ "semver": "^5.6.0",
+ "tapable": "^1.0.0",
+ "worker-rpc": "^0.1.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1601839122515&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz",
+ "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz",
+ "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz",
+ "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz?cache=0&sync_timestamp=1587627107924&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz?cache=0&sync_timestamp=1596294337050&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1598611730985&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz",
+ "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "globby": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npm.taobao.org/globby/download/globby-7.1.1.tgz",
+ "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=",
+ "dev": true,
+ "requires": {
+ "array-union": "^1.0.1",
+ "dir-glob": "^2.0.0",
+ "glob": "^7.1.2",
+ "ignore": "^3.3.5",
+ "pify": "^3.0.0",
+ "slash": "^1.0.0"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1596294337050&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz",
+ "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=",
+ "dev": true
+ },
+ "ignore": {
+ "version": "3.3.10",
+ "resolved": "https://registry.npm.taobao.org/ignore/download/ignore-3.3.10.tgz",
+ "integrity": "sha1-Cpf7h2mG6AgcYxFg+PnziRV/AEM=",
+ "dev": true
+ },
+ "inquirer": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npm.taobao.org/inquirer/download/inquirer-7.0.4.tgz",
+ "integrity": "sha1-ma9b3kcVOryiP1x/ww2yR/OdpwM=",
+ "dev": true,
+ "requires": {
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^2.4.2",
+ "cli-cursor": "^3.1.0",
+ "cli-width": "^2.0.0",
+ "external-editor": "^3.0.3",
+ "figures": "^3.0.0",
+ "lodash": "^4.17.15",
+ "mute-stream": "0.0.8",
+ "run-async": "^2.2.0",
+ "rxjs": "^6.5.3",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^5.1.0",
+ "through": "^2.3.6"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz",
+ "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1601839122515&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz",
+ "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz",
+ "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz",
+ "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz?cache=0&sync_timestamp=1587627107924&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz?cache=0&sync_timestamp=1596294337050&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz",
+ "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1598611730985&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz",
+ "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=",
+ "dev": true
+ },
+ "locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz",
+ "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=",
+ "dev": true,
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ },
+ "open": {
+ "version": "7.3.0",
+ "resolved": "https://registry.npm.taobao.org/open/download/open-7.3.0.tgz?cache=0&sync_timestamp=1601376312546&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fopen%2Fdownload%2Fopen-7.3.0.tgz",
+ "integrity": "sha1-RUYf3uRkRPNkW24U6zypS4Lhvmk=",
+ "dev": true,
+ "requires": {
+ "is-docker": "^2.0.0",
+ "is-wsl": "^2.1.1"
+ }
+ },
+ "p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz",
+ "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=",
+ "dev": true,
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz?cache=0&sync_timestamp=1597081508945&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-4.1.0.tgz",
+ "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.2.0"
+ }
+ },
+ "p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz",
+ "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=",
+ "dev": true
+ },
+ "path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-4.0.0.tgz",
+ "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=",
+ "dev": true
+ },
+ "path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-3.1.1.tgz",
+ "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=",
+ "dev": true
+ },
+ "path-type": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/path-type/download/path-type-3.0.0.tgz",
+ "integrity": "sha1-zvMdyOCho7sNEFwM2Xzzv0f0428=",
+ "dev": true,
+ "requires": {
+ "pify": "^3.0.0"
+ }
+ },
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true
+ },
+ "react-dev-utils": {
+ "version": "10.2.1",
+ "resolved": "https://registry.npm.taobao.org/react-dev-utils/download/react-dev-utils-10.2.1.tgz?cache=0&sync_timestamp=1603462727689&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-dev-utils%2Fdownload%2Freact-dev-utils-10.2.1.tgz",
+ "integrity": "sha1-9t4yWuJfpNVG0J30uxvv3G3RnBk=",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "7.8.3",
+ "address": "1.1.2",
+ "browserslist": "4.10.0",
+ "chalk": "2.4.2",
+ "cross-spawn": "7.0.1",
+ "detect-port-alt": "1.1.6",
+ "escape-string-regexp": "2.0.0",
+ "filesize": "6.0.1",
+ "find-up": "4.1.0",
+ "fork-ts-checker-webpack-plugin": "3.1.1",
+ "global-modules": "2.0.0",
+ "globby": "8.0.2",
+ "gzip-size": "5.1.1",
+ "immer": "1.10.0",
+ "inquirer": "7.0.4",
+ "is-root": "2.1.0",
+ "loader-utils": "1.2.3",
+ "open": "^7.0.2",
+ "pkg-up": "3.1.0",
+ "react-error-overlay": "^6.0.7",
+ "recursive-readdir": "2.2.2",
+ "shell-quote": "1.7.2",
+ "strip-ansi": "6.0.0",
+ "text-table": "0.2.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1601839122515&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz",
+ "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz",
+ "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "dependencies": {
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz?cache=0&sync_timestamp=1587627107924&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true
+ }
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz",
+ "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "dev": true
+ },
+ "dir-glob": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/dir-glob/download/dir-glob-2.0.0.tgz",
+ "integrity": "sha1-CyBdK2rvmCOMooZZioIE0p0KADQ=",
+ "dev": true,
+ "requires": {
+ "arrify": "^1.0.1",
+ "path-type": "^3.0.0"
+ }
+ },
+ "globby": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npm.taobao.org/globby/download/globby-8.0.2.tgz",
+ "integrity": "sha1-VpdhnM2VxSdduy1vqkIIfBqUHY0=",
+ "dev": true,
+ "requires": {
+ "array-union": "^1.0.1",
+ "dir-glob": "2.0.0",
+ "fast-glob": "^2.0.2",
+ "glob": "^7.1.2",
+ "ignore": "^3.3.5",
+ "pify": "^3.0.0",
+ "slash": "^1.0.0"
+ }
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz?cache=0&sync_timestamp=1596294337050&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ },
+ "loader-utils": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.2.3.tgz",
+ "integrity": "sha1-H/XcaRHJ8KBiUxpMBLYJQGEIwsc=",
+ "dev": true,
+ "requires": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^2.0.0",
+ "json5": "^1.0.1"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1598611730985&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz",
+ "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz",
+ "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=",
+ "dev": true
+ },
+ "shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-2.0.0.tgz",
+ "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "^3.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-3.0.0.tgz",
+ "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=",
+ "dev": true
+ },
+ "slash": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz",
+ "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-4.2.0.tgz",
+ "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-6.0.0.tgz",
+ "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1598611730985&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz",
+ "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npm.taobao.org/which/download/which-2.0.2.tgz",
+ "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ }
+ }
+ },
+ "build-scripts-config": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npm.taobao.org/build-scripts-config/download/build-scripts-config-0.1.8.tgz",
+ "integrity": "sha1-xazuJ/wVfD/bMTTmOMBXy4RRDsg=",
+ "dev": true,
+ "requires": {
+ "@babel/plugin-proposal-class-properties": "^7.1.0",
+ "@babel/plugin-proposal-decorators": "^7.1.2",
+ "@babel/plugin-proposal-do-expressions": "^7.0.0",
+ "@babel/plugin-proposal-export-default-from": "^7.0.0",
+ "@babel/plugin-proposal-export-namespace-from": "^7.0.0",
+ "@babel/plugin-proposal-function-bind": "^7.0.0",
+ "@babel/plugin-proposal-function-sent": "^7.1.0",
+ "@babel/plugin-proposal-json-strings": "^7.0.0",
+ "@babel/plugin-proposal-logical-assignment-operators": "^7.0.0",
+ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0",
+ "@babel/plugin-proposal-numeric-separator": "^7.0.0",
+ "@babel/plugin-proposal-optional-chaining": "^7.0.0",
+ "@babel/plugin-proposal-pipeline-operator": "^7.0.0",
+ "@babel/plugin-proposal-throw-expressions": "^7.0.0",
+ "@babel/plugin-syntax-dynamic-import": "^7.0.0",
+ "@babel/plugin-syntax-import-meta": "^7.0.0",
+ "@babel/plugin-transform-runtime": "^7.1.0",
+ "@babel/preset-env": "^7.4.0",
+ "@babel/preset-flow": "^7.0.0",
+ "@babel/preset-react": "^7.0.0",
+ "@babel/preset-typescript": "^7.3.3",
+ "autoprefixer": "^9.6.1",
+ "babel-jest": "^24.9.0",
+ "babel-loader": "^8.0.6",
+ "camelcase": "^5.3.1",
+ "case-sensitive-paths-webpack-plugin": "^2.2.0",
+ "core-js": "^3.3.1",
+ "css-hot-loader": "^1.4.4",
+ "css-loader": "^3.2.0",
+ "file-loader": "^5.0.2",
+ "identity-obj-proxy": "^3.0.0",
+ "less": "^3.10.3",
+ "less-loader": "^5.0.0",
+ "loader-utils": "^1.2.3",
+ "lodash.clonedeep": "^4.5.0",
+ "mini-css-extract-plugin": "^0.8.0",
+ "node-sass": "^4.12.0",
+ "optimize-css-assets-webpack-plugin": "^5.0.3",
+ "postcss-loader": "^3.0.0",
+ "postcss-safe-parser": "^4.0.1",
+ "regenerator-runtime": "^0.13.3",
+ "sass-loader": "^8.0.0",
+ "terser-webpack-plugin": "^2.3.1",
+ "time-fix-plugin": "^2.0.6",
+ "ts-loader": "^6.1.2",
+ "typescript": "^3.6.3",
+ "url-loader": "^2.1.0",
+ "webpack-chain": "^6.0.0",
+ "webpack-filter-warnings-plugin": "^1.2.1",
+ "webpack-simple-progress-plugin": "0.0.4"
+ },
+ "dependencies": {
+ "@jest/console": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npm.taobao.org/@jest/console/download/@jest/console-24.9.0.tgz",
+ "integrity": "sha1-ebG8Bvt0qM+wHL3t+UVYSxuXB/A=",
+ "dev": true,
+ "requires": {
+ "@jest/source-map": "^24.9.0",
+ "chalk": "^2.0.1",
+ "slash": "^2.0.0"
+ }
+ },
+ "@jest/fake-timers": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npm.taobao.org/@jest/fake-timers/download/@jest/fake-timers-24.9.0.tgz",
+ "integrity": "sha1-uj5r8O7NCaY2BJiWQ00wZjZUDJM=",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^24.9.0",
+ "jest-message-util": "^24.9.0",
+ "jest-mock": "^24.9.0"
+ }
+ },
+ "@jest/source-map": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npm.taobao.org/@jest/source-map/download/@jest/source-map-24.9.0.tgz?cache=0&sync_timestamp=1604319711726&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40jest%2Fsource-map%2Fdownload%2F%40jest%2Fsource-map-24.9.0.tgz",
+ "integrity": "sha1-DiY6lEML5LQdpoPMwea//ioZFxQ=",
+ "dev": true,
+ "requires": {
+ "callsites": "^3.0.0",
+ "graceful-fs": "^4.1.15",
+ "source-map": "^0.6.0"
+ }
+ },
+ "@jest/test-result": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npm.taobao.org/@jest/test-result/download/@jest/test-result-24.9.0.tgz",
+ "integrity": "sha1-EXluiqnb+I6gJXV7MVJZWtBroMo=",
+ "dev": true,
+ "requires": {
+ "@jest/console": "^24.9.0",
+ "@jest/types": "^24.9.0",
+ "@types/istanbul-lib-coverage": "^2.0.0"
+ }
+ },
+ "@jest/transform": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npm.taobao.org/@jest/transform/download/@jest/transform-24.9.0.tgz",
+ "integrity": "sha1-SuJ2iyllU/rasJ6ewRlUPJCxbFY=",
+ "dev": true,
+ "requires": {
+ "@babel/core": "^7.1.0",
+ "@jest/types": "^24.9.0",
+ "babel-plugin-istanbul": "^5.1.0",
+ "chalk": "^2.0.1",
+ "convert-source-map": "^1.4.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "graceful-fs": "^4.1.15",
+ "jest-haste-map": "^24.9.0",
+ "jest-regex-util": "^24.9.0",
+ "jest-util": "^24.9.0",
+ "micromatch": "^3.1.10",
+ "pirates": "^4.0.1",
+ "realpath-native": "^1.1.0",
+ "slash": "^2.0.0",
+ "source-map": "^0.6.1",
+ "write-file-atomic": "2.4.1"
+ }
+ },
+ "@jest/types": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npm.taobao.org/@jest/types/download/@jest/types-24.9.0.tgz",
+ "integrity": "sha1-Y8smy3UA0Gnlo4lEGnxqtekJ/Fk=",
+ "dev": true,
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^1.1.1",
+ "@types/yargs": "^13.0.0"
+ }
+ },
+ "@types/istanbul-reports": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npm.taobao.org/@types/istanbul-reports/download/@types/istanbul-reports-1.1.2.tgz?cache=0&sync_timestamp=1605054056153&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fistanbul-reports%2Fdownload%2F%40types%2Fistanbul-reports-1.1.2.tgz",
+ "integrity": "sha1-6HXMaJ5HvOVJ7IHz315vbxHPrrI=",
+ "dev": true,
+ "requires": {
+ "@types/istanbul-lib-coverage": "*",
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "@types/stack-utils": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/@types/stack-utils/download/@types/stack-utils-1.0.1.tgz",
+ "integrity": "sha1-CoUdO9lkmPolwzq3J47TvWXwbD4=",
+ "dev": true
+ },
+ "@types/yargs": {
+ "version": "13.0.11",
+ "resolved": "https://registry.npm.taobao.org/@types/yargs/download/@types/yargs-13.0.11.tgz?cache=0&sync_timestamp=1605057458388&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fyargs%2Fdownload%2F%40types%2Fyargs-13.0.11.tgz",
+ "integrity": "sha1-3vLwyT5L3yxh1+NImbF+NL4o07E=",
+ "dev": true,
+ "requires": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "anymatch": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz",
+ "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=",
+ "dev": true,
+ "requires": {
+ "micromatch": "^3.1.4",
+ "normalize-path": "^2.1.1"
+ }
+ },
+ "babel-jest": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npm.taobao.org/babel-jest/download/babel-jest-24.9.0.tgz",
+ "integrity": "sha1-P8Mny4RnuJ0U17xw4xUQSng8zVQ=",
+ "dev": true,
+ "requires": {
+ "@jest/transform": "^24.9.0",
+ "@jest/types": "^24.9.0",
+ "@types/babel__core": "^7.1.0",
+ "babel-plugin-istanbul": "^5.1.0",
+ "babel-preset-jest": "^24.9.0",
+ "chalk": "^2.4.2",
+ "slash": "^2.0.0"
+ }
+ },
+ "babel-plugin-istanbul": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npm.taobao.org/babel-plugin-istanbul/download/babel-plugin-istanbul-5.2.0.tgz",
+ "integrity": "sha1-30reg9iXqS3wacTZolzyZxKTyFQ=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "find-up": "^3.0.0",
+ "istanbul-lib-instrument": "^3.3.0",
+ "test-exclude": "^5.2.3"
+ }
+ },
+ "babel-plugin-jest-hoist": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npm.taobao.org/babel-plugin-jest-hoist/download/babel-plugin-jest-hoist-24.9.0.tgz?cache=0&sync_timestamp=1604319713233&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-jest-hoist%2Fdownload%2Fbabel-plugin-jest-hoist-24.9.0.tgz",
+ "integrity": "sha1-T4NwketAfgFEfIhDy+xUbQAC11Y=",
+ "dev": true,
+ "requires": {
+ "@types/babel__traverse": "^7.0.6"
+ }
+ },
+ "babel-preset-jest": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npm.taobao.org/babel-preset-jest/download/babel-preset-jest-24.9.0.tgz?cache=0&sync_timestamp=1604319712402&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-preset-jest%2Fdownload%2Fbabel-preset-jest-24.9.0.tgz",
+ "integrity": "sha1-GStSHiIX+x0fZ89z9wwzZlCtPNw=",
+ "dev": true,
+ "requires": {
+ "@babel/plugin-syntax-object-rest-spread": "^7.0.0",
+ "babel-plugin-jest-hoist": "^24.9.0"
+ }
+ },
+ "cacache": {
+ "version": "13.0.1",
+ "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-13.0.1.tgz?cache=0&sync_timestamp=1594428010987&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-13.0.1.tgz",
+ "integrity": "sha1-qAAMIWlwiQgvhSh6GuxuOCAkpxw=",
+ "dev": true,
+ "requires": {
+ "chownr": "^1.1.2",
+ "figgy-pudding": "^3.5.1",
+ "fs-minipass": "^2.0.0",
+ "glob": "^7.1.4",
+ "graceful-fs": "^4.2.2",
+ "infer-owner": "^1.0.4",
+ "lru-cache": "^5.1.1",
+ "minipass": "^3.0.0",
+ "minipass-collect": "^1.0.2",
+ "minipass-flush": "^1.0.5",
+ "minipass-pipeline": "^1.2.2",
+ "mkdirp": "^0.5.1",
+ "move-concurrently": "^1.0.1",
+ "p-map": "^3.0.0",
+ "promise-inflight": "^1.0.1",
+ "rimraf": "^2.7.1",
+ "ssri": "^7.0.0",
+ "unique-filename": "^1.1.1"
+ }
+ },
+ "callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npm.taobao.org/callsites/download/callsites-3.1.0.tgz",
+ "integrity": "sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M=",
+ "dev": true
+ },
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz?cache=0&sync_timestamp=1603921882890&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz",
+ "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=",
+ "dev": true
+ },
+ "core-js": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npm.taobao.org/core-js/download/core-js-3.7.0.tgz?cache=0&sync_timestamp=1604675498528&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-3.7.0.tgz",
+ "integrity": "sha1-sKdhoCSIV3r7+XF55Ggb9JVoUg8=",
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-2.0.0.tgz?cache=0&sync_timestamp=1587627107924&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-2.0.0.tgz",
+ "integrity": "sha1-owME6Z2qMuI7L9IPUbq9B8/8o0Q=",
+ "dev": true
+ },
+ "find-cache-dir": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-3.3.1.tgz",
+ "integrity": "sha1-ibM/rUpGcNqpT4Vff74x1thP6IA=",
+ "dev": true,
+ "requires": {
+ "commondir": "^1.0.1",
+ "make-dir": "^3.0.2",
+ "pkg-dir": "^4.1.0"
+ }
+ },
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz?cache=0&sync_timestamp=1597169862146&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz",
+ "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=",
+ "dev": true,
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
+ "fsevents": {
+ "version": "1.2.13",
+ "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.13.tgz?cache=0&sync_timestamp=1604593283990&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-1.2.13.tgz",
+ "integrity": "sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "bindings": "^1.5.0",
+ "nan": "^2.12.1"
+ }
+ },
+ "istanbul-lib-coverage": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npm.taobao.org/istanbul-lib-coverage/download/istanbul-lib-coverage-2.0.5.tgz",
+ "integrity": "sha1-Z18KtpUD+tSx2En3NrqsqAM0T0k=",
+ "dev": true
+ },
+ "istanbul-lib-instrument": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npm.taobao.org/istanbul-lib-instrument/download/istanbul-lib-instrument-3.3.0.tgz",
+ "integrity": "sha1-pfY9kfC7wMPkee9MXeAnM17G1jA=",
+ "dev": true,
+ "requires": {
+ "@babel/generator": "^7.4.0",
+ "@babel/parser": "^7.4.3",
+ "@babel/template": "^7.4.0",
+ "@babel/traverse": "^7.4.3",
+ "@babel/types": "^7.4.0",
+ "istanbul-lib-coverage": "^2.0.5",
+ "semver": "^6.0.0"
+ }
+ },
+ "jest-haste-map": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npm.taobao.org/jest-haste-map/download/jest-haste-map-24.9.0.tgz",
+ "integrity": "sha1-s4pdZCdJNOIfpBeump++t3zqrH0=",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^24.9.0",
+ "anymatch": "^2.0.0",
+ "fb-watchman": "^2.0.0",
+ "fsevents": "^1.2.7",
+ "graceful-fs": "^4.1.15",
+ "invariant": "^2.2.4",
+ "jest-serializer": "^24.9.0",
+ "jest-util": "^24.9.0",
+ "jest-worker": "^24.9.0",
+ "micromatch": "^3.1.10",
+ "sane": "^4.0.3",
+ "walker": "^1.0.7"
+ }
+ },
+ "jest-message-util": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npm.taobao.org/jest-message-util/download/jest-message-util-24.9.0.tgz?cache=0&sync_timestamp=1604319716333&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-message-util%2Fdownload%2Fjest-message-util-24.9.0.tgz",
+ "integrity": "sha1-Un9UoeOA9eICqNEUmw7IcvQxGeM=",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "@jest/test-result": "^24.9.0",
+ "@jest/types": "^24.9.0",
+ "@types/stack-utils": "^1.0.1",
+ "chalk": "^2.0.1",
+ "micromatch": "^3.1.10",
+ "slash": "^2.0.0",
+ "stack-utils": "^1.0.1"
+ }
+ },
+ "jest-mock": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npm.taobao.org/jest-mock/download/jest-mock-24.9.0.tgz?cache=0&sync_timestamp=1604319657931&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-mock%2Fdownload%2Fjest-mock-24.9.0.tgz",
+ "integrity": "sha1-wig1VB7jebkIZzrVEIeiGFwT8cY=",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^24.9.0"
+ }
+ },
+ "jest-regex-util": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npm.taobao.org/jest-regex-util/download/jest-regex-util-24.9.0.tgz",
+ "integrity": "sha1-wT+zOAveIr9ldUMsST6o/jeWVjY=",
+ "dev": true
+ },
+ "jest-serializer": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npm.taobao.org/jest-serializer/download/jest-serializer-24.9.0.tgz",
+ "integrity": "sha1-5tfX75bTHouQeacUdUxdXFgojnM=",
+ "dev": true
+ },
+ "jest-util": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npm.taobao.org/jest-util/download/jest-util-24.9.0.tgz?cache=0&sync_timestamp=1604321502822&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-util%2Fdownload%2Fjest-util-24.9.0.tgz",
+ "integrity": "sha1-c5aBTkhTbS6Fo33j5MQx18sUAWI=",
+ "dev": true,
+ "requires": {
+ "@jest/console": "^24.9.0",
+ "@jest/fake-timers": "^24.9.0",
+ "@jest/source-map": "^24.9.0",
+ "@jest/test-result": "^24.9.0",
+ "@jest/types": "^24.9.0",
+ "callsites": "^3.0.0",
+ "chalk": "^2.0.1",
+ "graceful-fs": "^4.1.15",
+ "is-ci": "^2.0.0",
+ "mkdirp": "^0.5.1",
+ "slash": "^2.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "jest-worker": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npm.taobao.org/jest-worker/download/jest-worker-24.9.0.tgz?cache=0&sync_timestamp=1604319657366&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-worker%2Fdownload%2Fjest-worker-24.9.0.tgz",
+ "integrity": "sha1-Xb/bWy0yLphWeJgjipaXvM5ns+U=",
+ "dev": true,
+ "requires": {
+ "merge-stream": "^2.0.0",
+ "supports-color": "^6.1.0"
+ }
+ },
+ "load-json-file": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/load-json-file/download/load-json-file-4.0.0.tgz",
+ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^4.0.0",
+ "pify": "^3.0.0",
+ "strip-bom": "^3.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz",
+ "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=",
+ "dev": true,
+ "requires": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "normalize-path": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz",
+ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+ "dev": true,
+ "requires": {
+ "remove-trailing-separator": "^1.0.1"
+ }
+ },
+ "p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz",
+ "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=",
+ "dev": true,
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz?cache=0&sync_timestamp=1597081508945&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-3.0.0.tgz",
+ "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
+ "p-map": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/p-map/download/p-map-3.0.0.tgz",
+ "integrity": "sha1-1wTZr4orpoTiYA2aIVmD1BQal50=",
+ "dev": true,
+ "requires": {
+ "aggregate-error": "^3.0.0"
+ }
+ },
+ "p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz",
+ "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=",
+ "dev": true
+ },
+ "parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-4.0.0.tgz?cache=0&sync_timestamp=1598129247474&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-json%2Fdownload%2Fparse-json-4.0.0.tgz",
+ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+ "dev": true,
+ "requires": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ }
+ },
+ "path-type": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/path-type/download/path-type-3.0.0.tgz",
+ "integrity": "sha1-zvMdyOCho7sNEFwM2Xzzv0f0428=",
+ "dev": true,
+ "requires": {
+ "pify": "^3.0.0"
+ }
+ },
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true
+ },
+ "pkg-dir": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-4.2.0.tgz?cache=0&sync_timestamp=1602859008602&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-4.2.0.tgz",
+ "integrity": "sha1-8JkTPfft5CLoHR2ESCcO6z5CYfM=",
+ "dev": true,
+ "requires": {
+ "find-up": "^4.0.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz?cache=0&sync_timestamp=1597169862146&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-4.1.0.tgz",
+ "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=",
+ "dev": true,
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz",
+ "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=",
+ "dev": true,
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
+ "p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz?cache=0&sync_timestamp=1597081508945&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-4.1.0.tgz",
+ "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.2.0"
+ }
+ },
+ "path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-4.0.0.tgz",
+ "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=",
+ "dev": true
+ }
+ }
+ },
+ "read-pkg": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/read-pkg/download/read-pkg-3.0.0.tgz",
+ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "^4.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^3.0.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-4.0.0.tgz",
+ "integrity": "sha1-GyIcYIi6d5lgHICPkRYcZuWPiXg=",
+ "dev": true,
+ "requires": {
+ "find-up": "^3.0.0",
+ "read-pkg": "^3.0.0"
+ }
+ },
+ "regenerator-runtime": {
+ "version": "0.13.7",
+ "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.13.7.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.7.tgz",
+ "integrity": "sha1-ysLazIoepnX+qrrriugziYrkb1U=",
+ "dev": true
+ },
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz?cache=0&sync_timestamp=1587992602190&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.7.1.tgz",
+ "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "schema-utils": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-2.7.1.tgz",
+ "integrity": "sha1-HKTzLRskxZDCA7jnpQvw6kzTlNc=",
+ "dev": true,
+ "requires": {
+ "@types/json-schema": "^7.0.5",
+ "ajv": "^6.12.4",
+ "ajv-keywords": "^3.5.2"
+ }
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz",
+ "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ },
+ "ssri": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-7.1.0.tgz",
+ "integrity": "sha1-ksJBv23oI2W1x/tL126XVSLhKU0=",
+ "dev": true,
+ "requires": {
+ "figgy-pudding": "^3.5.1",
+ "minipass": "^3.1.1"
+ }
+ },
+ "stack-utils": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npm.taobao.org/stack-utils/download/stack-utils-1.0.3.tgz?cache=0&sync_timestamp=1605310634130&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstack-utils%2Fdownload%2Fstack-utils-1.0.3.tgz",
+ "integrity": "sha1-23pHVzO1uL9lIZB7GIkdKQBvd1E=",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "^2.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1598611730985&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz",
+ "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ },
+ "terser-webpack-plugin": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-2.3.8.tgz?cache=0&sync_timestamp=1603881757308&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser-webpack-plugin%2Fdownload%2Fterser-webpack-plugin-2.3.8.tgz",
+ "integrity": "sha1-iUdkoZsHQ/L3BOfCqEjFKDppZyQ=",
+ "dev": true,
+ "requires": {
+ "cacache": "^13.0.1",
+ "find-cache-dir": "^3.3.1",
+ "jest-worker": "^25.4.0",
+ "p-limit": "^2.3.0",
+ "schema-utils": "^2.6.6",
+ "serialize-javascript": "^4.0.0",
+ "source-map": "^0.6.1",
+ "terser": "^4.6.12",
+ "webpack-sources": "^1.4.3"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1596294337050&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz",
+ "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=",
+ "dev": true
+ },
+ "jest-worker": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npm.taobao.org/jest-worker/download/jest-worker-25.5.0.tgz?cache=0&sync_timestamp=1604319657366&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-worker%2Fdownload%2Fjest-worker-25.5.0.tgz",
+ "integrity": "sha1-JhHQcbec6g9D7lej0RhZOsFUfbE=",
+ "dev": true,
+ "requires": {
+ "merge-stream": "^2.0.0",
+ "supports-color": "^7.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1598611730985&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz",
+ "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "test-exclude": {
+ "version": "5.2.3",
+ "resolved": "https://registry.npm.taobao.org/test-exclude/download/test-exclude-5.2.3.tgz",
+ "integrity": "sha1-w9Ph4xHrfuQF4JLawQrv0JCR6sA=",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3",
+ "minimatch": "^3.0.4",
+ "read-pkg-up": "^4.0.0",
+ "require-main-filename": "^2.0.0"
+ }
+ },
+ "write-file-atomic": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npm.taobao.org/write-file-atomic/download/write-file-atomic-2.4.1.tgz",
+ "integrity": "sha1-0LBUY8GIroBDlv1asqNwBir4dSk=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.11",
+ "imurmurhash": "^0.1.4",
+ "signal-exit": "^3.0.2"
+ }
+ }
+ }
+ },
+ "builtin-status-codes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/builtin-status-codes/download/builtin-status-codes-3.0.0.tgz",
+ "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=",
+ "dev": true
+ },
+ "busboy": {
+ "version": "0.2.14",
+ "resolved": "https://registry.npm.taobao.org/busboy/download/busboy-0.2.14.tgz",
+ "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=",
... 18835 lines suppressed ...