commit ed97663c6a08695c51cdd99864fa428c432a7777
Author: clay <20932067@zju.edu.cn>
Date: Wed Feb 16 17:12:11 2022 +0800
初始化
diff --git a/.browserslistrc b/.browserslistrc
new file mode 100644
index 0000000..d6471a3
--- /dev/null
+++ b/.browserslistrc
@@ -0,0 +1,2 @@
+> 1%
+last 2 versions
diff --git a/.eslintrc.js b/.eslintrc.js
new file mode 100644
index 0000000..1d97ca3
--- /dev/null
+++ b/.eslintrc.js
@@ -0,0 +1,18 @@
+module.exports = {
+ root: true,
+ env: {
+ node: true
+ },
+ extends: ["plugin:vue/essential", "@vue/prettier"],
+ rules: {
+ "no-console": process.env.NODE_ENV === "production" ? "error" : "off",
+ "no-debugger": process.env.NODE_ENV === "production" ? "error" : "off",
+ // 强制使用单引号
+ 'quotes': ['error', 'single'],
+ // 关闭行末分号提示/报错
+ 'semi': 0
+ },
+ parserOptions: {
+ parser: "babel-eslint"
+ }
+}
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..a0dddc6
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,21 @@
+.DS_Store
+node_modules
+/dist
+
+# local env files
+.env.local
+.env.*.local
+
+# Log files
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+
+# Editor directories and files
+.idea
+.vscode
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/.npmignore b/.npmignore
new file mode 100644
index 0000000..a720e85
--- /dev/null
+++ b/.npmignore
@@ -0,0 +1,9 @@
+# 忽略目录
+.idea/
+examples/
+packages/
+
+# 忽略指定文件
+vue.config.js
+babel.config.js
+*.map
\ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..fb270d7
--- /dev/null
+++ b/README.md
@@ -0,0 +1,149 @@
+# ClayTop
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+> A visual graph editor component library based on G6 and Vue.js.
+> 基于G6和Vue的可视化图形编辑组件库。
+
+## 一、 版本
+
+| 开发版本 |
+| :-------- |
+| [v0.1.0](http://git.hchyun.com/clay/clay-top) |
+
+## 二、预览
+
+[DEMO演示](http://ClayTop.wenyuanblog.com)
+
+
+## 三、项目依赖
+
+* [Vue.js(2.x)](https://cn.vuejs.org/)
+* ~~[Element UI(2.x)](https://element.eleme.cn/2.0/#/zh-CN)~~
+* [AntV G6(3.x)](http://antv.alipay.com/zh-cn/index.html)
+
+## 四、项目结构
+
+```
+.
+├── packages // 源码
+├── examples // 用例(开发调试用)
+├── 其它
+|
+```
+
+## 五、开发方式
+
+### 1. 调试
+
+```bash
+npm install
+npm run serve
+```
+
+### 2. 发布
+
+```bash
+npm run lib
+npm pack
+```
+
+## 六、使用方式
+
+
+
+#### 全局注册
+
+在 `main.js` 中写入以下内容:
+* 完整引入:引入整个ClayTop:
+
+```javascript
+import Vue from 'vue'
+import router from './router'
+import store from './store'
+import ElementUI from 'element-ui'
+
+import App from './App.vue'
+
+Vue.use(ElementUI)
+
+/* 全局注册:引入整个ClayTop */
+import ClayTop from '@chaincloud/ClayTop'
+Vue.use(ClayTop)
+
+Vue.config.productionTip = false
+
+new Vue({
+ router,
+ store,
+ render: h => h(App)
+}).$mount('#app')
+```
+* 按需引入:引入需要的模块,例如Topology:
+
+```javascript
+import Vue from 'vue'
+import router from './router'
+import store from './store'
+import ElementUI from 'element-ui'
+
+import App from './App.vue'
+
+Vue.use(ElementUI)
+
+/* 全局注册:只加载Topology */
+import { Topology } from '@chaincloud/ClayTop'
+Vue.use(Topology)
+
+Vue.config.productionTip = false
+
+new Vue({
+ router,
+ store,
+ render: h => h(App)
+}).$mount('#app')
+```
+
+#### 局部注册
+
+在 `ComponentA.vue` 中进行局部注册:
+```vue
+
+```
+
+### 3. 开始使用
+
+#### 属性
+
+TODO...
+
+#### 方法
+
+TODO...
+
+## 七、备注
+
+* **\[已解决]** 升级 G6 到 3.5.0 后,发现 G6 底层有 [bug](https://github.com/antvis/G6/issues/1613):调用addItem方法报错:`p.getType is not a function`。该 bug 导致编辑(连线)功能不可用,需等待下个小版本的修复。—— 2020.06.02
+* **\[已解决]** 由于 G6 在 3.3.x 版本作了 breaking change,且遗留了一些 bug。本项目先暂停更新。预计 6 月份或 G6 底层这些重要 bug 修复后,继续跟进。—— 2020.03.01
diff --git a/babel.config.js b/babel.config.js
new file mode 100644
index 0000000..3ecebf1
--- /dev/null
+++ b/babel.config.js
@@ -0,0 +1,3 @@
+module.exports = {
+ presets: ["@vue/app"]
+};
diff --git a/examples/App.vue b/examples/App.vue
new file mode 100644
index 0000000..812eef2
--- /dev/null
+++ b/examples/App.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/examples/assets/iconfont/iconfont.css b/examples/assets/iconfont/iconfont.css
new file mode 100644
index 0000000..cc59b1c
--- /dev/null
+++ b/examples/assets/iconfont/iconfont.css
@@ -0,0 +1,33 @@
+@font-face {font-family: "iconfont";
+ src: url('iconfont.eot?t=1570676544597'); /* IE9 */
+ src: url('iconfont.eot?t=1570676544597#iefix') format('embedded-opentype'), /* IE6-IE8 */
+ url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAAU8AAsAAAAACfQAAATtAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCDMgqHAIV5ATYCJAMUCwwABCAFhG0HXBuZCBHVo4GR/UyIN14+uxup00M/BAkNRvqeiYev/V7P3d0HIVSgopKvMvGANiwskVBlMr5CVqiOZwkkdH76TX3HkYU1NZfQUtFZZCYSNiebE6ZmB3Quf2YJgP3fFum0lIWCRl6Hfta/7IsBY2dHl6YpTQNWx87ispfSqvVGnQIYCnAsVkr5WjWg/8Dy7v8Qb3WZxwl0m9IRqxV1BmAU+rhAnPbp1QWYhFGpYIZWUxcsLRCvQKNNs6gbAF56vx9/IT0YkFQZ9KmbPcu7g/5tzVuCLfZb0N4hgGg4O9hVZHRQiOtC5yngINyRdctB2iKAEmwlaahOF99ef0vsdgDphtTdxj88kpAVogZd2YvURUU5OJGFkfhxESP4cR0j84OIH4yywtHdqIkpEE8JdcKRBF5YL1dFs+w48togvzGq78zK29EbJB/E7/JWVTOvxC9W03liuCZUKQrskb22EJBlo7jDd4NSyp/KljbELT6aJMpmsInRimJqjfcRIATzqs6wygVgaTQIkoSM50Z8saoivuV+0yayxfOSwEnblEhivAMW2bglkJQqVeLGo15Btq1HL+aAd1AseCsPtR6Me7vRdrMt9kbkns+qbQ7bNntt3Ak7rTGrY+ibrS+R1oVIF+sPW7NuX4aVazxPhhFisK30M1hsPrPHyxMIGbdf8XZe3HOTIpBISTGJJE0iRlk2CzuCxCvZx04h6VamsDQvaeteuRIs4gZR52SVNi12+qpdDrJqVpVQPKmRDg2lGw2EuC2Nro333wy3Xx6FFz0y0zO6YSHOnx1TreU8MKutSDpjOQPI/xbsoeWqx/izcViY0c2k2QI5p0bIzH05/ZGLrslx0VxND2eDgz1cyjj2m9qkuefrfV9jIAcFKIEyXWBU7+YnZ8482fyOiVwU/t29N59zWJLBjNDSCPFF24Z6DJncwTypxL9iL+v95crqefM2n6v0PxtQ6aUfZO4wiB/m+XiJwdO9uJ1fz+DcuXKtlVpS1l2Dw1tqmy/OPMXALQDn3xAvXhgV++KGtrS5rq/nncuoc8/Q+8/xUS6uRxCH+zVQ/Z1HVxrfo4rJf3v+nZxNve+R0zuY6t+/nqO3vNTBEXPixejYRRcQjzc8e7gZb8FPH0Lm3PEW3m3DWdwijfrcV6ND3WcKbCwOz7kYVp830GWoT5/59XpEHcbU5NrUEspzbj3OYPVJto5BJwaiNofjmDbauM1t0PGIw5Qeza/36eMyNG8g9AbAjYWGfMsbvYBGeDQA+R6u+xeH2Zb+3OnkUviN0X2Dlk8XzugR70ZCwh9KpbHozyuhgRs7HZxEN1VFqrSEkruyOYAyyfpuqgZ077Dvw6jHGmcTWmMRJI1JyFrTxELtQKXHPNRaC9Bt1sbqHiOuAYvSFJhxn0AY9B6Sfh8gG/SRWKjfoDLuP9QGA0O3feSxZQ87OvyljFAwapB/8GopxrTwxc+9oX0nQXGJx3oh7d4HfdOlYzMWpCFm7B87MBswtGSYyGmY0gIrLQEVN455HdvWFL1Ro5ZcXZQRCkYN5B94tRTjNOdL5udvaN9JUEVVmf+FtPv2Qa/RNSDOytKo6lJ67x87YDbUKENLBhPYMRnhBazFgwIqbrgOwXXUYiPTVNlMr843UMDWod9HExTCiEYa1AScDjy7t6yVJ5XwkFBfc+R0zJIoRQuKVQUAAAA=') format('woff2'),
+ url('iconfont.woff?t=1570676544597') format('woff'),
+ url('iconfont.ttf?t=1570676544597') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */
+ url('iconfont.svg?t=1570676544597#iconfont') format('svg'); /* iOS 4.1- */
+}
+
+.iconfont {
+ font-family: "iconfont" !important;
+ font-size: 16px;
+ font-style: normal;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+.icon-github-circle:before {
+ content: "\e6c5";
+}
+
+.icon-github:before {
+ content: "\e64a";
+}
+
+.icon-github-rect:before {
+ content: "\e6cb";
+}
+
+.icon-github-dark:before {
+ content: "\e6d4";
+}
+
diff --git a/examples/assets/iconfont/iconfont.eot b/examples/assets/iconfont/iconfont.eot
new file mode 100644
index 0000000..b53fb69
Binary files /dev/null and b/examples/assets/iconfont/iconfont.eot differ
diff --git a/examples/assets/iconfont/iconfont.js b/examples/assets/iconfont/iconfont.js
new file mode 100644
index 0000000..d45451e
--- /dev/null
+++ b/examples/assets/iconfont/iconfont.js
@@ -0,0 +1 @@
+!function(d){var t,n='',e=(t=document.getElementsByTagName("script"))[t.length-1].getAttribute("data-injectcss");if(e&&!d.__iconfont__svg__cssinject__){d.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(t){console&&console.log(t)}}!function(t){if(document.addEventListener)if(~["complete","loaded","interactive"].indexOf(document.readyState))setTimeout(t,0);else{var e=function(){document.removeEventListener("DOMContentLoaded",e,!1),t()};document.addEventListener("DOMContentLoaded",e,!1)}else document.attachEvent&&(o=t,i=d.document,c=!1,(a=function(){try{i.documentElement.doScroll("left")}catch(t){return void setTimeout(a,50)}n()})(),i.onreadystatechange=function(){"complete"==i.readyState&&(i.onreadystatechange=null,n())});function n(){c||(c=!0,o())}var o,i,c,a}(function(){var t,e;(t=document.createElement("div")).innerHTML=n,n=null,(e=t.getElementsByTagName("svg")[0])&&(e.setAttribute("aria-hidden","true"),e.style.position="absolute",e.style.width=0,e.style.height=0,e.style.overflow="hidden",function(t,e){e.firstChild?function(t,e){e.parentNode.insertBefore(t,e)}(t,e.firstChild):e.appendChild(t)}(e,document.body))})}(window);
\ No newline at end of file
diff --git a/examples/assets/iconfont/iconfont.svg b/examples/assets/iconfont/iconfont.svg
new file mode 100644
index 0000000..3c90c9e
--- /dev/null
+++ b/examples/assets/iconfont/iconfont.svg
@@ -0,0 +1,38 @@
+
+
+
+
diff --git a/examples/assets/iconfont/iconfont.ttf b/examples/assets/iconfont/iconfont.ttf
new file mode 100644
index 0000000..f3ced53
Binary files /dev/null and b/examples/assets/iconfont/iconfont.ttf differ
diff --git a/examples/assets/iconfont/iconfont.woff b/examples/assets/iconfont/iconfont.woff
new file mode 100644
index 0000000..47cad8a
Binary files /dev/null and b/examples/assets/iconfont/iconfont.woff differ
diff --git a/examples/assets/iconfont/iconfont.woff2 b/examples/assets/iconfont/iconfont.woff2
new file mode 100644
index 0000000..f35c465
Binary files /dev/null and b/examples/assets/iconfont/iconfont.woff2 differ
diff --git a/examples/assets/images/404-images/404-cloud.png b/examples/assets/images/404-images/404-cloud.png
new file mode 100644
index 0000000..c6281d0
Binary files /dev/null and b/examples/assets/images/404-images/404-cloud.png differ
diff --git a/examples/assets/images/404-images/404.png b/examples/assets/images/404-images/404.png
new file mode 100644
index 0000000..3d8e230
Binary files /dev/null and b/examples/assets/images/404-images/404.png differ
diff --git a/examples/assets/images/blue.svg b/examples/assets/images/blue.svg
new file mode 100644
index 0000000..7ec1164
--- /dev/null
+++ b/examples/assets/images/blue.svg
@@ -0,0 +1,29 @@
+
+
\ No newline at end of file
diff --git a/examples/assets/images/demo-topology.png b/examples/assets/images/demo-topology.png
new file mode 100644
index 0000000..ea34097
Binary files /dev/null and b/examples/assets/images/demo-topology.png differ
diff --git a/examples/assets/images/demo_topology.gif b/examples/assets/images/demo_topology.gif
new file mode 100644
index 0000000..53302fa
Binary files /dev/null and b/examples/assets/images/demo_topology.gif differ
diff --git a/examples/assets/images/green.svg b/examples/assets/images/green.svg
new file mode 100644
index 0000000..c9dcad0
--- /dev/null
+++ b/examples/assets/images/green.svg
@@ -0,0 +1,29 @@
+
+
\ No newline at end of file
diff --git a/examples/assets/images/purple.svg b/examples/assets/images/purple.svg
new file mode 100644
index 0000000..eeb861a
--- /dev/null
+++ b/examples/assets/images/purple.svg
@@ -0,0 +1,29 @@
+
+
\ No newline at end of file
diff --git a/examples/assets/logo.png b/examples/assets/logo.png
new file mode 100644
index 0000000..28d098d
Binary files /dev/null and b/examples/assets/logo.png differ
diff --git a/examples/components/FooterBar.vue b/examples/components/FooterBar.vue
new file mode 100644
index 0000000..c66b0b8
--- /dev/null
+++ b/examples/components/FooterBar.vue
@@ -0,0 +1,97 @@
+
+
+
+
+
+
+
diff --git a/examples/components/HeaderBar.vue b/examples/components/HeaderBar.vue
new file mode 100644
index 0000000..ff4f82a
--- /dev/null
+++ b/examples/components/HeaderBar.vue
@@ -0,0 +1,95 @@
+
+
+
+
+
+
+
diff --git a/examples/components/HelloWorld.vue b/examples/components/HelloWorld.vue
new file mode 100644
index 0000000..342020b
--- /dev/null
+++ b/examples/components/HelloWorld.vue
@@ -0,0 +1,117 @@
+
+
+
{{ msg }}
+
+ For a guide and recipes on how to configure / customize this project,
+ check out the
+ vue-cli documentation.
+
+
Installed CLI Plugins
+
+
Essential Links
+
+
Ecosystem
+
+
+
+
+
+
+
+
diff --git a/examples/main.js b/examples/main.js
new file mode 100644
index 0000000..354331d
--- /dev/null
+++ b/examples/main.js
@@ -0,0 +1,36 @@
+import Vue from 'vue'
+import router from './router'
+import store from './store'
+import ElementUI from 'element-ui'
+
+import '@/styles/index.scss' // global css
+
+import App from './App.vue'
+
+Vue.use(ElementUI)
+
+/* 全局注册 */
+
+/* 统一加载: prod */
+// import ClayTop from '@chaincloud/ClayTop'
+// Vue.use(ClayTop)
+
+/* 只加载Topology: prod */
+// import { Topology } from '@chaincloud/ClayTop'
+// Vue.use(Topology)
+
+/* 统一加载: dev */
+// import ClayTop from '../packages/index'
+// Vue.use(ClayTop)
+
+/* 只加载Topology: dev */
+// import { Topology } from '../packages/index';
+// Vue.use(Topology);
+
+Vue.config.productionTip = false
+
+new Vue({
+ router,
+ store,
+ render: h => h(App)
+}).$mount('#app')
diff --git a/examples/router.js b/examples/router.js
new file mode 100644
index 0000000..20adbed
--- /dev/null
+++ b/examples/router.js
@@ -0,0 +1,43 @@
+import Vue from 'vue'
+import Router from 'vue-router'
+
+Vue.use(Router)
+
+const router = new Router({
+ mode: 'history',
+ base: process.env.BASE_URL,
+ routes: [
+ {
+ path: '/',
+ name: 'DemoTopology',
+ component: () =>
+ import(/* webpackChunkName: "demo-topology" */ '@/views/demos/topology.vue')
+ },
+ {
+ path: '*',
+ component: () =>
+ import(/* webpackChunkName: "home" */ '@/views/error-pages/404.vue')
+ },
+ ]
+})
+
+/**
+ * 验证
+ */
+router.beforeEach((to, from, next) => {
+ if (navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i)) {
+ if (to.path === '/mobile') {
+ next()
+ } else {
+ next('/mobile')
+ }
+ } else {
+ if (to.path === '/mobile') {
+ next('/home')
+ } else {
+ next()
+ }
+ }
+})
+
+export default router
diff --git a/examples/store.js b/examples/store.js
new file mode 100644
index 0000000..ef5f0b7
--- /dev/null
+++ b/examples/store.js
@@ -0,0 +1,10 @@
+import Vue from 'vue'
+import Vuex from 'vuex'
+
+Vue.use(Vuex)
+
+export default new Vuex.Store({
+ state: {},
+ mutations: {},
+ actions: {}
+})
diff --git a/examples/styles/index.scss b/examples/styles/index.scss
new file mode 100644
index 0000000..fa0fefd
--- /dev/null
+++ b/examples/styles/index.scss
@@ -0,0 +1,61 @@
+@import '../../node_modules/element-ui/lib/theme-chalk/index.css';
+@import '../assets/iconfont/iconfont.css';
+
+/* global css */
+body {
+ height: 100%;
+ -moz-osx-font-smoothing: grayscale;
+ -webkit-font-smoothing: antialiased;
+ text-rendering: optimizeLegibility;
+ font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif;
+}
+
+html {
+ height: 100%;
+ box-sizing: border-box;
+}
+
+#app {
+ height: 100%;
+ /*overflow-x: hidden;*/
+ /*overflow-y: hidden;*/
+}
+
+* {
+ padding: 0;
+ margin: 0;
+}
+
+*,
+*:before,
+*:after {
+ box-sizing: inherit;
+}
+
+a:focus,
+a:active {
+ outline: none;
+}
+
+a,
+a:focus,
+a:hover {
+ cursor: pointer;
+ color: inherit;
+ text-decoration: none;
+}
+
+div:focus {
+ outline: none;
+}
+
+.clearfix {
+ &:after {
+ visibility: hidden;
+ display: block;
+ font-size: 0;
+ content: " ";
+ clear: both;
+ height: 0;
+ }
+}
diff --git a/examples/views/demos/packages/assets/iconfont/iconfont.css b/examples/views/demos/packages/assets/iconfont/iconfont.css
new file mode 100644
index 0000000..142743d
--- /dev/null
+++ b/examples/views/demos/packages/assets/iconfont/iconfont.css
@@ -0,0 +1,109 @@
+@font-face {font-family: "iconfont";
+ src: url('iconfont.eot?t=1568972645985'); /* IE9 */
+ src: url('iconfont.eot?t=1568972645985#iefix') format('embedded-opentype'), /* IE6-IE8 */
+ url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAA1MAAsAAAAAGkgAAAz/AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCGNAqiNJtOATYCJANgCzIABCAFhG0Hgggb6BVRlHJWSbKvBuyGeKPMp/UYzGar17rEgTXbq2lrenLOOiJE8OITJy7o6fe+23NLTyvVJoAwKGwrQsbFosAJPEZ3+Ytm/BseN+3fS0glCVCTCasY3VadGPyVrtxu0utIModSm3RSUfZHsjncObIyr8P0tHWYOJ0iZ73RM+2Zsj9df+4zw/JNJ9NJdwqhRklfCGc8j+3e58ZmgnVRSEKWoklKoPcrmZk0P0/vAQIBvH8/VamVDeUAJF3vd7MA0gtNCSshGl4/et+X5y2na8nOGlLHnKxoLUA8VuZibvEGsDHrBry0BQQUMFyDQ83xaxAyVtWrb5F0j+khUKzKBLeXr99Kh8NzCehMY1nptPycxS7JGwzDFukbmNR8MRW+5qXXb00Cw7fwgs+PZ125e8B32V4da2Ma5KA/HXgZDiw4BnAwk3GbBmxJj3OtmP7ceP4B7BPhSU/MEskVU6nwQu9EH7xRxVXS/eHM0Zd9YXi589MDTvXcO37+eLIvQ1Rn/RceIJoTYFwonswTIykqqxkxasyMKBHChAPqQO8G0MJa5oAekKsR0YOqCaYACYBEIOMAOZAJQDEQB1AByYAKIB7wAhABTmA1DPpgNRL6UUgBxAGpgBIgFnAPSAM4gYwAxoCMAu5jNcYwjGwkh2ggs4AyINOAC0AmAZexF1MAMJ8Ocw7woOJvQKg4+840uwPrToBSd7dEvK4t7vqaNfFFG7BPmh1xcj7mKetK4OMad2POjc62lYVVQ4stLy8tV6JEg9uc643L1cHTEs84tW63xsev5q0SacLNnHdans+TeT+TrS6PO/hylgoKhZfDejUj72RllMIEPrGHm0p736c9zytc+yj3BEMZ9dHRZi5qp4djvHrKzSpcOprmAxJqQnihShgQFtgigBsqGECffqJ/xD7UPdYg7DAu0I3GYcftqU4L4glRlYKRUFU0s8SmS1tESc5xGkAAAm7ElR8XPFOMjRcQBNI2kszvscejltEUsnOY4iPkLjIwa8BJnQliXA9BFAKCriRUMfJCIKnrBDzWSPBb6Gte6PHQLpfC7aa83tWd1s9xOzW718uYXK4NbC+OAyXobBDiAneOIKCgtwJQ79PgPByT4zv5KF/Y92Q6ZrrO4NDiScE7XTEARi9rJUIn+WZtahwSYBfad216u2fZdZfo5JVk5C3HlLPuwlvexFNXN+sHLrDn+5O6Rzn7JqTSj7DDGr0xEjH0TsV6Lprpps/7Sb+SM2alSWeIQIxWgq9fzM7u+jwf/31KUweVzqfWmaJwzqTW9QJQdH1JTujN0YTZDCFna8A9pMQNBgAerfpzEBLd7FVtijSZcDfnUJ0zbeiwo6d6u6fOdj/NmM1ROVV74VQPMRoJSgFaGsyo6jHvpNCToRTqUjXzLgmK97XbNS8D8TofjPO1BlfB3s4aI5/kEfqaTZWlCjXlMX0LoaAJyHmWut1K4mB9uFwXBglAnG2NW33VZWW7AQ5wKKiiTrIZ8CHN148AsMnayEdByNnX6oaGtt3FN8dkMQiBcgQfEDx2Hd8CIQ42V07YBTvlUUD9dA0sMPRGIKw1Wag/F4+abNVguU3AEAUJY7Q5GkKCyjOZInQRc8IwGiP1XUoSydvSOnFdiskC5xq7oueAvDDkpSAltu7iQO54T09kzwClyzCd4k5Hn8vXpxvb2BMRhk5a5yL0XgbgNJF9mmEdQ6EkpVgLgY8qaLWA8Glmw0AkwlCat1xTInCMPOWZs+JtZ9Lc8OZGEzz+SXf+JtB1GWzsvshd2ky9DcULNNDzOY07IyTWyxh4ywXONieV2OFZjrfqbKdOn+t72wqOnW/QXdxUB2bPbz/9ZC4fWmwpuO2+zpm25ewZw2uzJhPKLuvul4w7V0Egx3qTyG7bIYI7F22zMv236iMpowbruQS3/s66/hiBZRCf313YC8m8zvNzubN+KF7YNkDM687cxc16I2vYlnzmZqU0vJuLtgYBJtwEWrtNKRu8vBJLZADg0cjwAblWZ3U1I8xjKEjIpzqH2RG9nRtV+D+aAzI9Vqpz8jLdOfPOcc68UStaWSVTUUUdEkeGPQwLbTW3IAU/FxQ59ziXgoUqwcSHG2vx2KrttdXihK+uFY9rW0U4v5b5eNwaZ5Udjbc8+ZPe8APhNzA/eJiygtlM/GF/VljBPMQBWKD1qymweYiDZe2SAEm/Vmp/GkSVwAzmPro+Ep8bPyTN+BCee2ZkiX2EJ6LG70gld/45dGjePGz2ZTpzMLDt4KHBxFyQ+SSu8MiRwjHZ96p2rNDmP2Kr95dZSMphcVBkHlk6xcKswO6nSX+7LRciJ4WCiV+GHG8PPiPRsA2tz/zlkDocMwRC8qClYBJY9DL/x5/2ZbT+D+1419uu7KjXy7d73x1HAWgRB/z0470ZbTPSr+9FensQYt/b2xtFenprc09PRkpYUxhNoynpcLY8FXY46UgYxR9Jak5LhzWD7Fp5tHylnJXjXiG3qHGrY5bDiquR9p19ny+eWZA46ZykSWYu/rzYKXZGVUY9b1YDZ5xICHKGjgg2oGhhYVYWuwfK2/Zfc7CSFeGIKHkGFD1sWtQ09SemsL9wsGRfMj4WXMkP5Vfi4xGVe/cuWfHm2q2Ag2P/X7At+ULQB31oM7hbKVtbWVEJ0qZWRoyYDmiVDiGYBoRnzmSL4MC4gkB8vfJT4eBBebGYIxzJkjSoYLhfYLG+XB7Z1mbowXyY1nZlF8vlGCZZcT4s8GfKrXgFWVshU+bJB4LLGtm8L1s3H5uQST6TabGgO1htbPNa8nYPKbGJghwySZvy3L3cgAnZweY1xJ/vSVYU/iR5tnqFMwebWHOwpYT89vPn31RhtPLwihSFeA8oIlXgPYkyxC3BX+GIV8/HXskLtlzwe1h1bEv7LtxZvP3pF2vXYT/KMknZqrwDRY2FmeI/35u/oq4krNTskLd7ger5N8RXUPHl4j3lK1M36YHELuVrwUrP6teP+NwmkbBSNkGtBB67sgKpXwKmJkyVSmd+9nbDOMH89rFWbeM3062+VqJ0fmmI8M1vJwxpkoPCkO3zK4Ua38Hvf+nuOTHLr8UZ0eTcozrVzWuTqcLIEEY0GtKAREqYFdTBWP+879ekSFVDFkRentU7c4H47/ZYAS8KzbmaS1BfHJn7oiCK1oqmKTueELpFq38KZHOroqOq1B3qn5v7Po8mD+xq/SlHsfNcmuDigdR953ZVpOwcfSn1wOg3/4admg5ak6fBVve00aQiLTt9dNbS3dXA/nSor0wtFjHKN+2otm+orCxTpGTsb2pRItdHRPHA3JAzD4ty/gIDvti/5Lm+3auWNRYtojdt35iTCwbGo/+W509eea6YJOUoV8DTSHbyeDIbZIXc9pVfAMyfPGbl3eUL7vGsf73++zVDazv6rhdtt13KK5odWLiqqZ5e5O7O3lgAsz4WhV11FB8L4IvDAidvfhQ7me0XE50EEqHw+8mQl1Fb1lnyVfmr5NksG3qm1e2h5IcsWxqi+79/aKM+I6dqCnmofkefLCcdDjJifP/+cTAfrNhS1BEjaPLFLKjfUr8gxtckiOko0jHz3ratio2zykRVKPiHp8jbPS/z0Gxvs3Pp247AI4GXpTN/1SWHi6XFc8sMdwVP1z3HH1zxNS0RoWmbJ9ng2YNXecA5XeWz2XoDwS+ZgX/7mxlGNINJqR/suoLv1N1gRyW5+IYr6BzxliF0qfg5CxonajlQqWjjQWmR9QXKft6jadDZAIADSAsxLItK/XxbfGTQpNJtHRvw0cwaG7fzGT5U5f+b6QjKsmZNQaBsLIUyR0wneoFtRRY/bMkE/v9em6kULvo1iLgrs/OnzSGACqr6KRvGSAzeqB4pD1KwDCy2P9zfLh6YL58nUNJxBs/U9Fi6v0OPYFKjLZnXKc4woIhL4CHKpkkf9YnNODseKbGZmhjRCrGSbc5VHhOvuiZBckeKI0UjV1Nq1alk4NBBQmTcJWKM+kGscWMSJFSOE2/WdyQYjyXFi8zHWe3mc++RQDJoEe1EqtCZJMS9ou83xMFKarpy4R/IpzvFyeHxYNsrOCAfA/h1fMpshCEsxAuZGViLoiTMQPFhwlzeHh0Z04CHCotKzzMESJyuqAlqu7pbKcgxd2Y9bfG/gVhgSWQ54lfdf4B46csL2WbJcuBeNed0xL5Y66zFTtVT3RByf4IKwjKqAyviSNhtTpcBCju0ZQyjdGs2PVOlq3YYnxXbhMbad1Re/PkYWTl5BUUlZRVVNY1oVGMa14QmNaVpzWhWc5rXAia948ZZlLqzRywOMHAzLWQMndU2NdAp96TiIK1P99BQWO7aLglS11QWJHUNCmwObOqgQaCxEZyy1E3KHcaDpas7bhdJI6nyHmF64MH+TrCReXQ9E6z1igBcKyLMYWLmQGtoltJzuldMGMp2cPmWkSSKsFUTlj31VSo=') format('woff2'),
+ url('iconfont.woff?t=1568972645985') format('woff'),
+ url('iconfont.ttf?t=1568972645985') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */
+ url('iconfont.svg?t=1568972645985#iconfont') format('svg'); /* iOS 4.1- */
+}
+
+.iconfont {
+ font-family: "iconfont" !important;
+ font-size: 16px;
+ font-style: normal;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+.icon-download:before {
+ content: "\e68d";
+}
+
+.icon-zoom-out:before {
+ content: "\e69c";
+}
+
+.icon-image:before {
+ content: "\e752";
+}
+
+.icon-iconedit:before {
+ content: "\e650";
+}
+
+.icon-actualsize:before {
+ content: "\e665";
+}
+
+.icon-copy:before {
+ content: "\e61c";
+}
+
+.icon-zoom-in:before {
+ content: "\e600";
+}
+
+.icon-clear:before {
+ content: "\e700";
+}
+
+.icon-flow-line:before {
+ content: "\e660";
+}
+
+.icon-redo:before {
+ content: "\e716";
+}
+
+.icon-undo:before {
+ content: "\e71a";
+}
+
+.icon-fit:before {
+ content: "\e7cb";
+}
+
+.icon-to-front:before {
+ content: "\e7cc";
+}
+
+.icon-to-back:before {
+ content: "\e7cd";
+}
+
+.icon-roi-select:before {
+ content: "\e7ce";
+}
+
+.icon-json:before {
+ content: "\e623";
+}
+
+.icon-fullscreen:before {
+ content: "\e648";
+}
+
+.icon-broken:before {
+ content: "\e9ad";
+}
+
+.icon-curve:before {
+ content: "\e9b0";
+}
+
+.icon-paste:before {
+ content: "\e963";
+}
+
+.icon-group:before {
+ content: "\e915";
+}
+
+.icon-ungroup:before {
+ content: "\e917";
+}
+
+.icon-arrow-dropdown:before {
+ content: "\e601";
+}
+
diff --git a/examples/views/demos/packages/assets/iconfont/iconfont.eot b/examples/views/demos/packages/assets/iconfont/iconfont.eot
new file mode 100644
index 0000000..3eda34f
Binary files /dev/null and b/examples/views/demos/packages/assets/iconfont/iconfont.eot differ
diff --git a/examples/views/demos/packages/assets/iconfont/iconfont.js b/examples/views/demos/packages/assets/iconfont/iconfont.js
new file mode 100644
index 0000000..9467797
--- /dev/null
+++ b/examples/views/demos/packages/assets/iconfont/iconfont.js
@@ -0,0 +1 @@
+!function(i){var c,o='',h=(c=document.getElementsByTagName("script"))[c.length-1].getAttribute("data-injectcss");if(h&&!i.__iconfont__svg__cssinject__){i.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(c){console&&console.log(c)}}!function(c){if(document.addEventListener)if(~["complete","loaded","interactive"].indexOf(document.readyState))setTimeout(c,0);else{var h=function(){document.removeEventListener("DOMContentLoaded",h,!1),c()};document.addEventListener("DOMContentLoaded",h,!1)}else document.attachEvent&&(t=c,l=i.document,e=!1,(v=function(){try{l.documentElement.doScroll("left")}catch(c){return void setTimeout(v,50)}o()})(),l.onreadystatechange=function(){"complete"==l.readyState&&(l.onreadystatechange=null,o())});function o(){e||(e=!0,t())}var t,l,e,v}(function(){var c,h;(c=document.createElement("div")).innerHTML=o,o=null,(h=c.getElementsByTagName("svg")[0])&&(h.setAttribute("aria-hidden","true"),h.style.position="absolute",h.style.width=0,h.style.height=0,h.style.overflow="hidden",function(c,h){h.firstChild?function(c,h){h.parentNode.insertBefore(c,h)}(c,h.firstChild):h.appendChild(c)}(h,document.body))})}(window);
\ No newline at end of file
diff --git a/examples/views/demos/packages/assets/iconfont/iconfont.svg b/examples/views/demos/packages/assets/iconfont/iconfont.svg
new file mode 100644
index 0000000..f4aa4a7
--- /dev/null
+++ b/examples/views/demos/packages/assets/iconfont/iconfont.svg
@@ -0,0 +1,95 @@
+
+
+
+
diff --git a/examples/views/demos/packages/assets/iconfont/iconfont.ttf b/examples/views/demos/packages/assets/iconfont/iconfont.ttf
new file mode 100644
index 0000000..d5ab0e1
Binary files /dev/null and b/examples/views/demos/packages/assets/iconfont/iconfont.ttf differ
diff --git a/examples/views/demos/packages/assets/iconfont/iconfont.woff b/examples/views/demos/packages/assets/iconfont/iconfont.woff
new file mode 100644
index 0000000..6bfe8bd
Binary files /dev/null and b/examples/views/demos/packages/assets/iconfont/iconfont.woff differ
diff --git a/examples/views/demos/packages/assets/iconfont/iconfont.woff2 b/examples/views/demos/packages/assets/iconfont/iconfont.woff2
new file mode 100644
index 0000000..482e53e
Binary files /dev/null and b/examples/views/demos/packages/assets/iconfont/iconfont.woff2 differ
diff --git a/examples/views/demos/packages/assets/images/client.png b/examples/views/demos/packages/assets/images/client.png
new file mode 100644
index 0000000..f2fe60e
Binary files /dev/null and b/examples/views/demos/packages/assets/images/client.png differ
diff --git a/examples/views/demos/packages/assets/images/database.png b/examples/views/demos/packages/assets/images/database.png
new file mode 100644
index 0000000..809869e
Binary files /dev/null and b/examples/views/demos/packages/assets/images/database.png differ
diff --git a/examples/views/demos/packages/assets/images/firewall.png b/examples/views/demos/packages/assets/images/firewall.png
new file mode 100644
index 0000000..c364c42
Binary files /dev/null and b/examples/views/demos/packages/assets/images/firewall.png differ
diff --git a/examples/views/demos/packages/assets/images/server.png b/examples/views/demos/packages/assets/images/server.png
new file mode 100644
index 0000000..0e49219
Binary files /dev/null and b/examples/views/demos/packages/assets/images/server.png differ
diff --git a/examples/views/demos/packages/assets/logo.png b/examples/views/demos/packages/assets/logo.png
new file mode 100644
index 0000000..fb83843
Binary files /dev/null and b/examples/views/demos/packages/assets/logo.png differ
diff --git a/examples/views/demos/packages/elements/button.vue b/examples/views/demos/packages/elements/button.vue
new file mode 100644
index 0000000..52d48c6
--- /dev/null
+++ b/examples/views/demos/packages/elements/button.vue
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+
diff --git a/examples/views/demos/packages/elements/checkbox.vue b/examples/views/demos/packages/elements/checkbox.vue
new file mode 100644
index 0000000..aa36f62
--- /dev/null
+++ b/examples/views/demos/packages/elements/checkbox.vue
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/examples/views/demos/packages/elements/dropdown.vue b/examples/views/demos/packages/elements/dropdown.vue
new file mode 100644
index 0000000..fc71705
--- /dev/null
+++ b/examples/views/demos/packages/elements/dropdown.vue
@@ -0,0 +1,228 @@
+
+
+ {{edgeItem.label}}
+
+
+
+
+
+
diff --git a/examples/views/demos/packages/elements/index.js b/examples/views/demos/packages/elements/index.js
new file mode 100644
index 0000000..81367e7
--- /dev/null
+++ b/examples/views/demos/packages/elements/index.js
@@ -0,0 +1,17 @@
+/**
+ * @author: clay
+ * @data: 2019/11/14
+ * @description: ClayTop内部的通用组件
+ */
+
+import Checkbox from './checkbox'
+import Button from './button'
+import Dropdown from './dropdown'
+import Loading from './loading'
+
+export {
+ Checkbox,
+ Button,
+ Dropdown,
+ Loading
+}
diff --git a/examples/views/demos/packages/elements/loading.vue b/examples/views/demos/packages/elements/loading.vue
new file mode 100644
index 0000000..f410a92
--- /dev/null
+++ b/examples/views/demos/packages/elements/loading.vue
@@ -0,0 +1,92 @@
+
+
+
+
+
+
{{ loadingText }}
+
+
+
+
+
+
diff --git a/examples/views/demos/packages/topology/src/behavior/dice-er-node.js b/examples/views/demos/packages/topology/src/behavior/dice-er-node.js
new file mode 100644
index 0000000..964ed96
--- /dev/null
+++ b/examples/views/demos/packages/topology/src/behavior/dice-er-node.js
@@ -0,0 +1,238 @@
+/**
+ * @author: clay
+ * @data: 2021/5/14 23:20
+ * @email: clay@hchyun.com
+ * @description: node
+ */
+const isInBBox = (point, bbox) => {
+ const {
+ x,
+ y
+ } = point;
+ const {
+ minX,
+ minY,
+ maxX,
+ maxY
+ } = bbox;
+
+ return x < maxX && x > minX && y > minY && y < maxY;
+};
+
+let vm = null;
+
+const sendThis = (_this) => {
+ vm = _this;
+};
+
+export default {
+ sendThis,
+ name: 'dice-er-node',
+ options: {
+ getDefaultCfg() {
+ return {
+ multiple: true,
+ };
+ },
+ getEvents() {
+ return {
+ itemHeight: 50,
+ wheel: "scroll",
+ "node:click": "onNodeClick",
+ "edge:click": "onEdgeClick",
+ "node:contextmenu": "onNodeRightClick",
+ "edge:contextmenu": "onEdgeRightClick",
+ "canvas:click": "onCanvasClick",
+ };
+ },
+ scroll(e) {
+ e.preventDefault()
+ const {
+ graph
+ } = this;
+ const nodes = graph.getNodes().filter((n) => {
+ const bbox = n.getBBox();
+
+ return isInBBox(graph.getPointByClient(e.clientX, e.clientY), bbox);
+ });
+ if (nodes) {
+ nodes.forEach((node) => {
+ const model = node.getModel();
+ if (model.attrs.length < 9) {
+ return;
+ }
+ const idx = model.startIndex || 0;
+ let startX = model.startX || 0.5;
+ let startIndex = idx + e.deltaY * 0.02;
+ startX -= e.deltaX;
+ if (startIndex < 0) {
+ startIndex = 0;
+ }
+ if (startX > 0) {
+ startX = 0;
+ }
+ if (startIndex > model.attrs.length - 1) {
+ startIndex = model.attrs.length - 1;
+ }
+ graph.update(node, {
+ startIndex,
+ startX,
+ });
+ });
+ }
+
+
+ },
+ onNodeClick(event) {
+ this.shrinkage(event)
+ vm.currentFocus = "node";
+ vm.rightMenuShow = false;
+ this.updateVmData(event);
+ },
+ /**
+ * 点击连线
+ * @param event
+ */
+ onEdgeClick(event) {
+ let clickEdge = event.item;
+ clickEdge.setState("selected", !clickEdge.hasState("selected"));
+ vm.currentFocus = "edge";
+
+ this.updateVmData(event);
+ },
+ onNodeRightClick(event) {
+ let graph = vm.graph;
+ let clickNode = event.item;
+ let clickNodeModel = clickNode.getModel();
+ let selectedNodes = graph.findAllByState("node", "selected");
+ let selectedNodeIds = selectedNodes.map(item => {
+ return item.getModel().id;
+ });
+ vm.selectedNode = clickNode;
+ // 如果当前点击节点是之前选中的某个节点,就进行下面的处理
+ if (selectedNodes.length > 1 && selectedNodeIds.indexOf(clickNodeModel.id) > -1) {
+ vm.rightMenuShow = true;
+ let rightMenu = vm.$refs.rightMenu;
+ rightMenu.style.left = event.clientX + "px";
+ rightMenu.style.top = event.clientY + "px";
+ } else {
+ // 隐藏右键菜单
+ vm.rightMenuShow = false;
+ // 先取消所有节点的选中状态
+ selectedNodes.forEach(node => {
+ node.setState("selected", false);
+ });
+ // 再添加该节点的选中状态
+ clickNode.setState("selected", true);
+ vm.currentFocus = "node";
+ this.updateVmData(event);
+ }
+ graph.paint();
+ },
+ /**
+ *
+ * @param event
+ */
+ onEdgeRightClick(event) {
+ let graph = vm.graph;
+ let clickEdge = event.item;
+ let clickEdgeModel = clickEdge.getModel();
+ let selectedEdges = graph.findAllByState("edge", "selected");
+ // 如果当前点击节点不是之前选中的单个节点,才进行下面的处理
+ if (!(selectedEdges.length === 1 && clickEdgeModel.id === selectedEdges[0].getModel().id)) {
+ // 先取消所有节点的选中状态
+ graph.findAllByState("edge", "selected").forEach(edge => {
+ edge.setState("selected", false);
+ });
+ // 再添加该节点的选中状态
+ clickEdge.setState("selected", true);
+ vm.currentFocus = "edge";
+ this.updateVmData(event);
+ }
+ let point = { x: event.x, y: event.y };
+ },
+ onCanvasClick() {
+ vm.currentFocus = "canvas";
+ vm.rightMenuShow = false;
+ },
+ updateVmData(event) {
+ if (event.item._cfg.type === "node") {
+ let clickNode = event.item;
+ if (clickNode.hasState("selected")) {
+ let clickNodeModel = clickNode.getModel();
+ vm.selectedNode = clickNode;
+ let nodeAppConfig = { ...vm.nodeAppConfig };
+ Object.keys(nodeAppConfig).forEach(function(key) {
+ nodeAppConfig[key] = "";
+ });
+ vm.selectedNodeParams = {
+ label: clickNodeModel.label || "",
+ attrs:clickNodeModel.attrs,
+ appConfig: { ...nodeAppConfig, ...clickNodeModel.appConfig }
+ };
+ }
+ } else if (event.item._cfg.type === "edge") {
+ // 更新vm的data: selectedEdge 和 selectedEdgeParams
+ let clickEdge = event.item;
+ if (clickEdge.hasState("selected")) {
+ let clickEdgeModel = clickEdge.getModel();
+ vm.selectedEdge = clickEdge;
+ let edgeAppConfig = { ...vm.edgeAppConfig };
+ Object.keys(edgeAppConfig).forEach(function(key) {
+ edgeAppConfig[key] = "";
+ });
+ vm.selectedEdgeParams = {
+ label: clickEdgeModel.label || "",
+ sourceAttrs:clickEdgeModel.sourceAttrs,
+ targetAttrs:clickEdgeModel.targetAttrs,
+ appConfig: { ...edgeAppConfig, ...clickEdgeModel.appConfig }
+ };
+ }
+ }
+ },
+ shrinkage(e){
+ const {
+ graph
+ } = this;
+ const item = e.item;
+ const shape = e.shape;
+ if (!item) {
+ return;
+ }
+ if (shape.get("name") === "collapse") {
+ graph.updateItem(item, {
+ collapsed: true,
+ size: [300, 50],
+ });
+ setTimeout(() => graph.layout(), 100);
+ } else if (shape.get("name") === "expand") {
+ graph.updateItem(item, {
+ collapsed: false,
+ size: [300, 500],
+ });
+ setTimeout(() => graph.layout(), 100);
+ }else {
+ // eslint-disable-next-line no-unused-vars
+ const model = item.getModel();
+ // console.log(JSON.stringify(model));
+ // console.log(model.style.default.fill = '#4eb922');
+ // console.log(model.style.selected.shadowColor = '#4eb922');
+ }
+ },
+ moves(e) {
+ const name = e.shape.get("name");
+ const item = e.item;
+ if (!name.startsWith("marker")){
+ if (name && name.startsWith("item")) {
+ this.graph.updateItem(item, {
+ selectedIndex: Number(name.split("-")[1]),
+ });
+ } else {
+ this.graph.updateItem(item, {
+ selectedIndex: NaN,
+ });
+ }
+ }
+ },
+ }
+}
diff --git a/examples/views/demos/packages/topology/src/behavior/drag-add-edge.js b/examples/views/demos/packages/topology/src/behavior/drag-add-edge.js
new file mode 100644
index 0000000..c27c0af
--- /dev/null
+++ b/examples/views/demos/packages/topology/src/behavior/drag-add-edge.js
@@ -0,0 +1,180 @@
+/**
+ * @author: clay
+ * @data: 2019/07/16
+ * @description: edit mode: 通过拖拽节点上的锚点添加连线
+ */
+import utils from "../utils";
+
+// 用来获取调用此js的vue组件实例(this)
+let vm = null;
+
+const sendThis = (_this) => {
+ vm = _this;
+};
+
+import G6 from "@antv/g6";
+import theme from "../theme";
+
+export default {
+ sendThis, // 暴露函数
+ name: "drag-add-edge",
+ options: {
+ getEvents() {
+ return {
+ "node:mousedown": "onNodeMousedown",
+ "node:mouseup": "onNodeMouseup",
+ "edge:mouseup": "onEdgeMouseup",
+ "mousemove": "onMousemove"
+ };
+ },
+ onNodeMousedown(event) {
+ let self = this;
+ // 交互过程中的信息
+ self.evtInfo = {
+ action: null,
+ node: event.item,
+ target: event.target
+ };
+ if (self.evtInfo.target && self.evtInfo.target.attrs.name) {
+ // todo...未来可能针对锚点增加其它功能(例如拖拽调整大小)
+ switch (self.evtInfo.target.attrs.name) {
+ case "anchor":
+ self.evtInfo.action = "drawEdge";
+ break;
+ }
+ }
+ if (self.evtInfo && self.evtInfo.action) {
+ self[self.evtInfo.action].start.call(self, event);
+ }
+ },
+ onNodeMouseup(event) {
+ let self = this;
+ if (self.evtInfo && self.evtInfo.action) {
+ self[self.evtInfo.action].stop.call(self, event);
+ }
+ },
+ onEdgeMouseup(event) {
+ let self = this;
+ if (self.evtInfo && self.evtInfo.action === "drawEdge") {
+ self[self.evtInfo.action].stop.call(self, event);
+ }
+ },
+ onMousemove(event) {
+ let self = this;
+ if (self.evtInfo && self.evtInfo.action) {
+ self[self.evtInfo.action].move.call(self, event);
+ }
+ },
+ drawEdge: {
+ isMoving: false,
+ currentLine: null,
+ start: function(event) {
+ let self = this;
+ let themeStyle = theme.defaultStyle; // todo...先使用默认主题,后期可能增加其它风格的主体
+
+ // ************** 暂存【连线】前的数据状态 start **************
+ let graph = vm.graph;
+ self.historyData = JSON.stringify(graph.save());
+ // ************** 暂存【连线】前的数据状态 end **************
+
+ let sourceAnchor = self.evtInfo.node.getAnchorPoints();
+ let sourceNodeModel = self.evtInfo.node.getModel();
+ console.log("sourceNodeModel",sourceNodeModel)
+ // 锚点数据
+ let anchorPoints = self.evtInfo.node.getAnchorPoints();
+ // 处理线条目标点
+ if (anchorPoints && anchorPoints.length) {
+ // 获取距离指定坐标最近的一个锚点
+ sourceAnchor = self.evtInfo.node.getLinkPoint({
+ x: event.x,
+ y: event.y
+ })
+ }
+ self.drawEdge.currentLine = self.graph.addItem("edge", {
+ // id: G6.Util.uniqueId(), // 这种生成id的方式有bug,会重复
+ id: utils.generateUUID(),
+ // 起始节点
+ source: sourceNodeModel.id,
+ sourceAttrs:sourceNodeModel.attrs,
+ sourceAnchor: sourceAnchor ? sourceAnchor.anchorIndex : "",
+ // 终止节点/位置
+ target: {
+ x: event.x,
+ y: event.y
+ },
+ type: self.graph.$C.edge.type || "top-cubic",
+ style: themeStyle.edgeStyle.default|| self.graph.$C.edge.style
+ });
+ self.drawEdge.isMoving = true;
+ },
+
+ move(event) {
+ let self = this;
+ if (self.drawEdge.isMoving && self.drawEdge.currentLine) {
+ self.graph.updateItem(self.drawEdge.currentLine, {
+ target: {
+ x: event.x,
+ y: event.y
+ }
+ });
+ }
+ },
+ stop(event) {
+ let self = this;
+ if (self.drawEdge.isMoving) {
+ if (self.drawEdge.currentLine === event.item) {
+ // 画线过程中点击则移除当前画线
+ self.graph.removeItem(event.item);
+ } else {
+ let targetNode = event.item;
+ let targetNodeModel = targetNode.getModel();
+ let targetAnchor = null;
+ // 锚点数据
+ let anchorPoints = targetNode.getAnchorPoints();
+ // 处理线条目标点
+ if (anchorPoints && anchorPoints.length) {
+ // 获取距离指定坐标最近的一个锚点
+ targetAnchor = targetNode.getLinkPoint({
+ x: event.x,
+ y: event.y
+ });
+ }
+ self.graph.updateItem(self.drawEdge.currentLine, {
+ target: targetNodeModel.id,
+ targetAnchor: targetAnchor ? targetAnchor.anchorIndex : "",
+ targetAttrs:targetNodeModel.attrs,
+ });
+
+ // ************** 记录historyData的逻辑 start **************
+ if (this.historyData) {
+ let graph = this.graph;
+ // 如果当前点过【撤销】了,拖拽节点后没有【重做】功能
+ // 重置undoCount,拖拽后的数据给(当前所在historyIndex + 1),且清空这个时间点之后的记录
+ if (vm.undoCount > 0) {
+ vm.historyIndex = vm.historyIndex - vm.undoCount; // 此时的historyIndex应当更新为【撤销】后所在的索引位置
+ for (let i = 1; i <= vm.undoCount; i++) {
+ let key = `graph_history_${vm.historyIndex + i}`;
+ vm.removeHistoryData(key);
+ }
+ vm.undoCount = 0;
+ } else {
+ // 正常顺序执行的情况,记录拖拽前的数据状态
+ let key = `graph_history_${vm.historyIndex}`;
+ vm.addHistoryData(key, this.historyData);
+ }
+ // 记录拖拽后的数据状态
+ vm.historyIndex += 1;
+ let key = `graph_history_${vm.historyIndex}`;
+ let currentData = JSON.stringify(graph.save());
+ vm.addHistoryData(key, currentData);
+ }
+ // ************** 记录historyData的逻辑 end **************
+ }
+ }
+ self.drawEdge.currentLine = null;
+ self.drawEdge.isMoving = false;
+ self.evtInfo = null;
+ }
+ }
+ }
+};
diff --git a/examples/views/demos/packages/topology/src/behavior/drag-event-edit.js b/examples/views/demos/packages/topology/src/behavior/drag-event-edit.js
new file mode 100644
index 0000000..08ebc57
--- /dev/null
+++ b/examples/views/demos/packages/topology/src/behavior/drag-event-edit.js
@@ -0,0 +1,53 @@
+/**
+ * @author: clay
+ * @data: 2019/07/16
+ * @description: edit mode: 鼠标拖动节点的交互(记录拖拽前后的数据,用于【撤销】和【重做】)
+ */
+
+// 用来获取调用此js的vue组件实例(this)
+let vm = null
+
+const sendThis = (_this) => {
+ vm = _this
+}
+
+export default {
+ sendThis, // 暴露函数
+ name: 'drag-event-edit',
+ options: {
+ getEvents() {
+ return {
+ 'node:dragstart': 'onNodeDragstart',
+ 'node:dragend': 'onNodeDragend'
+ }
+ },
+ onNodeDragstart() {
+ let graph = vm.graph
+ this.historyData = JSON.stringify(graph.save())
+ },
+ onNodeDragend() {
+ if (this.historyData) {
+ let graph = this.graph
+ // 如果当前点过【撤销】了,拖拽节点后没有【重做】功能
+ // 重置undoCount,拖拽后的数据给(当前所在historyIndex + 1),且清空这个时间点之后的记录
+ if (vm.undoCount > 0) {
+ vm.historyIndex = vm.historyIndex - vm.undoCount // 此时的historyIndex应当更新为【撤销】后所在的索引位置
+ for (let i = 1; i <= vm.undoCount; i++) {
+ let key = `graph_history_${vm.historyIndex + i}`
+ vm.removeHistoryData(key)
+ }
+ vm.undoCount = 0
+ } else {
+ // 正常顺序执行的情况,记录拖拽前的数据状态
+ let key = `graph_history_${vm.historyIndex}`
+ vm.addHistoryData(key, this.historyData)
+ }
+ // 记录拖拽后的数据状态
+ vm.historyIndex += 1
+ let key = `graph_history_${vm.historyIndex}`
+ let currentData = JSON.stringify(graph.save())
+ vm.addHistoryData(key, currentData)
+ }
+ }
+ }
+}
diff --git a/examples/views/demos/packages/topology/src/behavior/hover-event-edit.js b/examples/views/demos/packages/topology/src/behavior/hover-event-edit.js
new file mode 100644
index 0000000..1b83d59
--- /dev/null
+++ b/examples/views/demos/packages/topology/src/behavior/hover-event-edit.js
@@ -0,0 +1,65 @@
+/**
+ * @author: clay
+ * @data: 2019/07/16
+ * @description: edit mode: 悬浮交互
+ */
+// 用来获取调用此js的vue组件实例(this)
+let vm = null;
+var hourItem = null;
+const sendThis = (_this) => {
+ vm = _this;
+};
+export default {
+ sendThis, // 暴露函数
+ name: "hover-event-edit",
+ options: {
+ getEvents() {
+ return {
+ "node:mouseover": "onNodeHover",
+ "node:mouseout": "onNodeOut",
+ "node:mouseleave":"onNodeLeave",
+ };
+ },
+ onNodeHover(event) {
+ let graph = vm.graph;
+ let hoverNode = event.item;
+
+ const name = event.shape.get("name");
+ const item = event.item;
+
+ if (name && name.startsWith("item")) {
+ graph.updateItem(item, {
+ selectedIndex: Number(name.split("-")[1])
+ });
+ } else {
+ graph.updateItem(item, {
+ selectedIndex: NaN
+ });
+ }
+ if (name && name.startsWith("marker")) {
+ hoverNode.setState("hover", true, graph);
+ hourItem=hoverNode;
+ }else {
+ if (hourItem!=null){
+ hourItem.setState("hover", false)
+ }
+ }
+ },
+ onNodeOut(event) {
+ const name = event.shape.get("name");
+ let hoverNode = event.item;
+ if (name && name.startsWith("marker")) {
+ hoverNode.setState("hover", false);
+ }
+ if (hourItem!=null){
+ hourItem.setState("hover", false)
+ }
+ hoverNode.setState("hover", false);
+ },
+ onNodeLeave(event) {
+ if (hourItem!=null){
+ hourItem.setState("hover", false)
+ }
+ }
+ }
+};
diff --git a/examples/views/demos/packages/topology/src/behavior/index.js b/examples/views/demos/packages/topology/src/behavior/index.js
new file mode 100644
index 0000000..748e43b
--- /dev/null
+++ b/examples/views/demos/packages/topology/src/behavior/index.js
@@ -0,0 +1,28 @@
+/**
+ * @author: clay
+ * @data: 2019/07/16
+ * @description: register behaviors
+ */
+
+import dragAddEdge from './drag-add-edge'
+import hoverEventEdit from './hover-event-edit'
+import dragEventEdit from './drag-event-edit'
+import keyupEventEdit from './keyup-event-edit'
+import diceErNode from './dice-er-node'
+
+const obj = {
+ dragAddEdge,
+ hoverEventEdit,
+ dragEventEdit,
+ keyupEventEdit,
+ diceErNode,
+}
+
+export default {
+ obj,
+ register(G6) {
+ Object.values(obj).map(item => {
+ G6.registerBehavior(item.name, item.options)
+ })
+ }
+}
diff --git a/examples/views/demos/packages/topology/src/behavior/keyup-event-edit.js b/examples/views/demos/packages/topology/src/behavior/keyup-event-edit.js
new file mode 100644
index 0000000..cdb6af3
--- /dev/null
+++ b/examples/views/demos/packages/topology/src/behavior/keyup-event-edit.js
@@ -0,0 +1,63 @@
+/**
+ * @author: clay
+ * @data: 2019/07/16
+ * @description: edit mode: 键盘事件的交互,主要是删除节点和连线(记录删除前后的数据,用于【撤销】和【重做】)
+ */
+
+// 用来获取调用此js的vue组件实例(this)
+let vm = null
+
+const sendThis = (_this) => {
+ vm = _this
+}
+
+export default {
+ sendThis, // 暴露函数
+ name: 'keyup-event-edit',
+ options: {
+ getEvents() {
+ return {
+ 'keyup': 'onKeyup'
+ }
+ },
+ onKeyup(event) {
+ let graph = this.graph
+ let selectedNodes = graph.findAllByState('node', 'selected')
+ let selectedEdges = graph.findAllByState('edge', 'selected')
+ if (event.keyCode === 46 && (selectedNodes.length > 0 || selectedEdges.length > 0)) {
+
+ // ************** 记录【删除】前的数据状态 start **************
+ let historyData = JSON.stringify(graph.save())
+ let key = `graph_history_${vm.historyIndex}`
+ vm.addHistoryData(key, historyData)
+ // ************** 记录【删除】前的数据状态 end **************
+
+ // 开始删除
+ for (let i = 0; i < selectedNodes.length; i++) {
+ graph.removeItem(selectedNodes[i])
+ }
+ for (let i = 0; i < selectedEdges.length; i++) {
+ graph.removeItem(selectedEdges[i])
+ }
+
+ // ************** 记录【删除】后的数据状态 start **************
+ // 如果当前点过【撤销】了,拖拽节点后将取消【重做】功能
+ // 重置undoCount,【删除】后的数据状态给(当前所在historyIndex + 1),且清空这个时间点之后的记录
+ if (vm.undoCount > 0) {
+ vm.historyIndex = vm.historyIndex - vm.undoCount // 此时的historyIndex应当更新为【撤销】后所在的索引位置
+ for (let i = 1; i <= vm.undoCount; i++) {
+ let key = `graph_history_${vm.historyIndex + i}`
+ vm.removeHistoryData(key)
+ }
+ vm.undoCount = 0
+ }
+ // 记录【删除】后的数据状态
+ vm.historyIndex += 1
+ key = `graph_history_${vm.historyIndex}`
+ let currentData = JSON.stringify(graph.save())
+ vm.addHistoryData(key, currentData)
+ // ************** 记录【删除】后的数据状态 end **************
+ }
+ }
+ }
+}
diff --git a/examples/views/demos/packages/topology/src/config/edge.js b/examples/views/demos/packages/topology/src/config/edge.js
new file mode 100644
index 0000000..e908144
--- /dev/null
+++ b/examples/views/demos/packages/topology/src/config/edge.js
@@ -0,0 +1,13 @@
+/**
+ * @author: clay
+ * @data: 2019/08/16
+ * @description: 线条的后期设置
+ */
+
+export default {
+ type: 'top-cubic',
+ style: {
+ startArrow: false,
+ endArrow: true
+ }
+}
diff --git a/examples/views/demos/packages/topology/src/config/index.js b/examples/views/demos/packages/topology/src/config/index.js
new file mode 100644
index 0000000..abed973
--- /dev/null
+++ b/examples/views/demos/packages/topology/src/config/index.js
@@ -0,0 +1,11 @@
+/**
+ * @author: clay
+ * @data: 2019/08/16
+ * @description: 配置
+ */
+
+import edge from './edge'
+
+export default {
+ edge
+}
diff --git a/examples/views/demos/packages/topology/src/edge/base.js b/examples/views/demos/packages/topology/src/edge/base.js
new file mode 100644
index 0000000..a694c89
--- /dev/null
+++ b/examples/views/demos/packages/topology/src/edge/base.js
@@ -0,0 +1,30 @@
+/**
+ * @author: Clay
+ * @data: 2019/07/18
+ * @description: 线公共方法
+ */
+
+import utils from '../utils'
+
+export default {
+ draw(cfg, group) {
+ const { startPoint, endPoint } = cfg
+ const keyShape = group.addShape('path', {
+ className: 'edge-shape',
+ attrs: {
+ ...cfg.style,
+ path: [
+ ['M', startPoint.x, startPoint.y],
+ ['L', endPoint.x, endPoint.y]
+ ]
+ },
+ name: 'edge-shape'
+ })
+ console.log(keyShape.attrs.endArrow = true)
+ return keyShape
+ },
+ setState(name, value, item) {
+ // 设置边状态
+ utils.edge.setState(name, value, item)
+ }
+}
diff --git a/examples/views/demos/packages/topology/src/edge/index.js b/examples/views/demos/packages/topology/src/edge/index.js
new file mode 100644
index 0000000..bcbbbe4
--- /dev/null
+++ b/examples/views/demos/packages/topology/src/edge/index.js
@@ -0,0 +1,18 @@
+/**
+ * @author: clay
+ * @data: 2019/07/18
+ * @description: register edges
+ */
+
+
+import topCubic from './top-cubic'
+
+const obj = {
+ topCubic
+}
+
+export default function(G6) {
+ Object.values(obj).map(item => {
+ G6.registerEdge(item.name, item.options, item.extendName)
+ })
+}
diff --git a/examples/views/demos/packages/topology/src/edge/top-cubic.js b/examples/views/demos/packages/topology/src/edge/top-cubic.js
new file mode 100644
index 0000000..c53d53f
--- /dev/null
+++ b/examples/views/demos/packages/topology/src/edge/top-cubic.js
@@ -0,0 +1,14 @@
+/**
+ * @author: Clay
+ * @data: 2019/07/18
+ * @description: 曲线
+ */
+
+import base from './base'
+export default {
+ name: 'top-cubic',
+ extendName: 'cubic',
+ options: {
+ ...base
+ }
+}
diff --git a/examples/views/demos/packages/topology/src/graph/index.js b/examples/views/demos/packages/topology/src/graph/index.js
new file mode 100644
index 0000000..928ff74
--- /dev/null
+++ b/examples/views/demos/packages/topology/src/graph/index.js
@@ -0,0 +1,160 @@
+/**
+ * @author: clay
+ * @data: 2019/07/05
+ * @description: 图的布局方式/图的初始化
+ */
+
+import d3 from '../plugins/d3-installer'
+import theme from '../theme'
+
+/**
+ * 图的布局方式/图的初始化
+ * @type {{commonGraph: (function(*, *): G6.Graph)}}
+ */
+const initGraph = {
+ /**
+ * 一般布局
+ * @param G6
+ * @param options
+ * @returns {G6.Graph}
+ */
+ commonGraph: function(G6, options) {
+ let graphData = options.graphData
+ let themeStyle = theme.defaultStyle // todo...先使用默认主题,后期可能增加其它风格的主体
+ // 生成G6实例
+ let graph = new G6.Graph({
+ plugins: options.plugins,
+ container: options.container,
+ width: options.width,
+ height: options.height,
+ // layout: {
+ // type: 'random',
+ // width: options.width,
+ // height: options.height
+ // },
+ defaultNode: {
+ type: 'dice-er-box',
+ labelCfg: {
+ position: 'bottom'
+ }
+ },
+ defaultEdge: {
+ type: 'top-cubic',
+ labelCfg: {
+ position: 'center',
+ autoRotate: false
+ }
+ },
+ nodeStateStyles: themeStyle.nodeStyle,
+ // nodeStyle: {
+ // selected: {
+ // shadowColor: '#626262',
+ // shadowBlur: 8,
+ // shadowOffsetX: -1,
+ // shadowOffsetY: 3
+ // }
+ // },
+ edgeStateStyles:{
+ edgeStyle: {
+ default: {
+ stroke: '#e2e2e2',
+ lineWidth: 3,
+ lineAppendWidth: 10
+ },
+ selected: {
+ shadowColor: '#626262',
+ shadowBlur: 3
+ }
+ },
+ },
+ modes: options.modes
+ })
+ // 将 read 方法分解成 data() 和 render 方法,便于整个生命周期的管理
+ graph.read(graphData)
+ graph.render()
+ // 返回G6实例
+ return graph
+ },
+ /**
+ * 力导布局
+ * @param G6
+ * @param options
+ * @returns {*}
+ */
+ forceLayoutGraph: function(resolve, G6, options) {
+ let graphData = options.graphData
+ let themeStyle = theme.defaultStyle // todo...先使用默认主题,后期可能增加其它风格的主体
+ // 生成G6实例
+ let graph = new G6.Graph({
+ container: options.container,
+ width: options.width,
+ height: options.height,
+ nodeStateStyles: themeStyle.nodeStyle,
+ edgeStateStyles: themeStyle.edgeStyle
+ })
+ // 初始化力导布局
+ let simulation = d3
+ .forceSimulation()
+ .force(
+ 'link',
+ d3
+ .forceLink()
+ .id(function(d) {
+ return d.id
+ })
+ .distance(linkDistance)
+ .strength(0.5)
+ )
+ .force('charge', d3.forceManyBody().strength(-500).distanceMax(500).distanceMin(100))
+ .force('center', d3.forceCenter(options.width / 2, options.height / 2))
+ // 定义节点数据
+ simulation.nodes(graphData.nodes).on('tick', ticked)
+ // 定义连线数据
+ let edges = []
+ for (let i = 0; i < graphData.edges.length; i++) {
+ edges.push({
+ id: graphData.edges[i].id,
+ source: graphData.edges[i].source,
+ target: graphData.edges[i].target
+ })
+ }
+ simulation.force('link').links(edges)
+ graph.data(graphData)
+ graph.render()
+
+ function linkDistance(d) {
+ return 150
+ }
+
+ function ticked() {
+ // protect: planA: 移除事件监听器 planB: 手动停止力模拟
+ if (graph.destroyed) {
+ // simulation.nodes(graphData.nodes).on('tick', null)
+ simulation.stop()
+ return
+ }
+ if (!graph.get('data')) {
+ // 若是第一次渲染,定义数据,渲染
+ graph.data(graphData)
+ graph.render()
+ } else {
+ // 后续渲染,直接刷新所有点和边的位置
+ graph.refreshPositions()
+ }
+ }
+
+ // 控制时间: 只布局10秒
+ let t = setTimeout(function() {
+ simulation.stop()
+ resolve(graph)
+ }, 10000)
+
+ // 判断force-layout结束
+ simulation.on('end', () => {
+ clearTimeout(t)
+ resolve(graph)
+ })
+ }
+}
+
+export default initGraph
diff --git a/examples/views/demos/packages/topology/src/node/dice-er-box.js b/examples/views/demos/packages/topology/src/node/dice-er-box.js
new file mode 100644
index 0000000..cf4467f
--- /dev/null
+++ b/examples/views/demos/packages/topology/src/node/dice-er-box.js
@@ -0,0 +1,285 @@
+/**
+ * @author: clay
+ * @data: 2021/5/15 0:16
+ * @email: clay@hchyun.com
+ * @description: node
+ */
+import utils from '../utils/index'
+
+let vm = null;
+const sendThis = (_this) => {
+ vm = _this;
+};
+const itemHeight = 30;
+export default {
+ sendThis,
+ name: 'dice-er-box',
+ options: {
+ setState(name, value, item) {
+ // 设置节点状态
+ utils.node.setState(name, value, item)
+ // 设置锚点状态
+ // if (vm.graphMode === 'edit') {
+ utils.anchor.setState(name, value, item)
+ // }
+ },
+ draw(cfg, group) {
+ const width = 250;
+ const height = 316;
+ const itemCount = 10;
+ const boxStyle = {
+ stroke: "#096DD9",
+ radius: 4,
+ };
+
+ const {
+ attrs = [],
+ startIndex = 0,
+ selectedIndex,
+ collapsed,
+ icon,
+ } = cfg;
+ const list = attrs;
+ const afterList = list.slice(
+ Math.floor(startIndex),
+ Math.floor(startIndex + itemCount - 1)
+ );
+ const offsetY = (0.5 - (startIndex % 1)) * itemHeight + 30;
+
+ group.addShape("rect", {
+ attrs: {
+ fill: boxStyle.stroke,
+ height: 30,
+ width,
+ radius: [boxStyle.radius, boxStyle.radius, 0, 0],
+ },
+ draggable: true,
+ });
+
+ let fontLeft = 12;
+
+ if (icon && icon.show !== false) {
+ group.addShape("image", {
+ attrs: {
+ x: 8,
+ y: 8,
+ height: 16,
+ width: 16,
+ ...icon,
+ },
+ });
+ fontLeft += 18;
+ }
+
+ group.addShape("text", {
+ attrs: {
+ y: 22,
+ x: fontLeft,
+ fill: "#fff",
+ text: cfg.label,
+ fontSize: 12,
+ fontWeight: 500,
+ },
+ });
+
+ group.addShape("rect", {
+ attrs: {
+ x: 0,
+ y: collapsed ? 30 : 300,
+ height: 15,
+ width,
+ fill: "#eee",
+ radius: [0, 0, boxStyle.radius, boxStyle.radius],
+ cursor: "pointer",
+ },
+ name: collapsed ? "expand" : "collapse",
+ });
+
+ group.addShape("text", {
+ attrs: {
+ x: width / 2 - 6,
+ y: (collapsed ? 30 : 300) + 12,
+ text: collapsed ? "+" : "-",
+ width,
+ fill: "#000",
+ radius: [0, 0, boxStyle.radius, boxStyle.radius],
+ cursor: "pointer",
+ },
+ name: collapsed ? "expand" : "collapse",
+ });
+
+ const keyshape = group.addShape("rect", {
+ attrs: {
+ x: 0,
+ y: 0,
+ width,
+ height: collapsed ? 45 : height,
+ ...boxStyle,
+ },
+ draggable: true,
+ });
+
+ if (collapsed) {
+ return keyshape;
+ }
+
+ const listContainer = group.addGroup({});
+ listContainer.setClip({
+ type: "rect",
+ attrs: {
+ x: -8,
+ y: 30,
+ width: width + 16,
+ height: 300 - 30,
+ },
+ });
+ listContainer.addShape({
+ type: "rect",
+ attrs: {
+ x: 1,
+ y: 30,
+ width: width - 2,
+ height: 300 - 30,
+ fill: "#fff",
+ },
+ draggable: true,
+ });
+
+ if (list.length > itemCount) {
+ const barStyle = {
+ width: 4,
+ padding: 0,
+ boxStyle: {
+ stroke: "#00000022",
+ },
+ innerStyle: {
+ fill: "#00000022",
+ },
+ };
+
+ listContainer.addShape("rect", {
+ attrs: {
+ y: 30,
+ x: width - barStyle.padding - barStyle.width,
+ width: barStyle.width,
+ height: height - 30,
+ ...barStyle.boxStyle,
+ },
+ });
+
+ const indexHeight =
+ afterList.length > itemCount ?
+ (afterList.length / list.length) * height :
+ 10;
+
+ listContainer.addShape("rect", {
+ attrs: {
+ y: 30 +
+ barStyle.padding +
+ (startIndex / list.length) * (height - 30),
+ x: width - barStyle.padding - barStyle.width,
+ width: barStyle.width,
+ height: Math.min(height, indexHeight),
+ ...barStyle.innerStyle,
+ },
+ });
+ }
+ if (afterList) {
+ afterList.forEach((e, i) => {
+ const isSelected =
+ Math.floor(startIndex) + i === Number(selectedIndex);
+ let {
+ key = "", type
+ } = e;
+ if (type) {
+ key += " - " + type;
+ }
+ const label = key.length > 26 ? key.slice(0, 24) + "..." : key;
+
+ listContainer.addShape("rect", {
+ attrs: {
+ x: 1,
+ y: i * itemHeight - itemHeight / 2 + offsetY,
+ width: width - 4,
+ height: itemHeight,
+ radius: 2,
+ lineWidth: 1,
+ cursor: "pointer",
+ },
+ name: `item-${Math.floor(startIndex) + i}-content`,
+ draggable: true,
+ });
+
+ if (!cfg.hideDot) {
+ // utils.anchor.erDrawLeft(group, label, 0, i * itemHeight + offsetY)
+ // utils.anchor.erDrawLeft(group,label,width,i * itemHeight + offsetY)
+ // listContainer.addShape("marker", {
+ // attrs: {
+ // x: 0,
+ // y: i * itemHeight + offsetY,
+ // r: 3,
+ // stroke: boxStyle.stroke,
+ // fill: "white",
+ // radius: 2,
+ // lineWidth: 1,
+ // cursor: "crosshair",
+ // },
+ //
+ // name: 'marker-shape'
+ // });
+ // listContainer.addShape("marker", {
+ // attrs: {
+ // x: width,
+ // y: i * itemHeight + offsetY,
+ // r: 3,
+ // stroke: boxStyle.stroke,
+ // fill: "white",
+ // radius: 2,
+ // lineWidth: 1,
+ // cursor: "crosshair",
+ //
+ //
+ // },
+ // name: 'marker-shape'
+ // });
+
+
+ }
+
+ listContainer.addShape("text", {
+ attrs: {
+ x: 12,
+ y: i * itemHeight + offsetY + 6,
+ text: label,
+ fontSize: 12,
+ fill: "#000",
+ fontFamily: "Avenir,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol",
+ full: e,
+ fontWeight: isSelected ? 500 : 100,
+ cursor: "pointer",
+ },
+ name: `item-${Math.floor(startIndex) + i}`,
+ });
+ });
+ }
+ return keyshape;
+ },
+ // getAnchorPoints() {
+ // return [
+ // [0, 0],
+ // [1, 0],
+ // ];
+ // },
+ // 绘制后附加锚点
+ afterDraw(cfg, group) {
+ // 绘制锚点
+ utils.anchor.drawMark(cfg, group)
+ },
+
+ }
+}
+
+
+
+
+
diff --git a/examples/views/demos/packages/topology/src/node/index.js b/examples/views/demos/packages/topology/src/node/index.js
new file mode 100644
index 0000000..7ed5492
--- /dev/null
+++ b/examples/views/demos/packages/topology/src/node/index.js
@@ -0,0 +1,20 @@
+/**
+ * @author: clay
+ * @data: 2019/07/05
+ * @description: register nodes
+ */
+
+
+import diceErBox from './dice-er-box'
+const obj = {
+ diceErBox
+}
+
+export default {
+ obj,
+ register(G6) {
+ Object.values(obj).map(item => {
+ G6.registerNode(item.name, item.options, item.extendName)
+ })
+ }
+}
diff --git a/examples/views/demos/packages/topology/src/plugins/d3-installer.js b/examples/views/demos/packages/topology/src/plugins/d3-installer.js
new file mode 100644
index 0000000..5991259
--- /dev/null
+++ b/examples/views/demos/packages/topology/src/plugins/d3-installer.js
@@ -0,0 +1,9 @@
+/**
+ * @author: clay
+ * @data: 2019/07/05
+ * @description: install 3rd plugins
+ */
+
+import * as d3 from 'd3-force/dist/d3-force'
+
+export default d3
diff --git a/examples/views/demos/packages/topology/src/theme/dark-style.js b/examples/views/demos/packages/topology/src/theme/dark-style.js
new file mode 100644
index 0000000..b7c1832
--- /dev/null
+++ b/examples/views/demos/packages/topology/src/theme/dark-style.js
@@ -0,0 +1,177 @@
+/**
+ * @author: clay
+ * @data: 2019/11/20
+ * @description: dark style
+ */
+
+export default {
+ // 节点样式
+ nodeStyle: {
+ default: {
+ stroke: '#CED4D9',
+ fill: 'transparent',
+ shadowOffsetX: 0,
+ shadowOffsetY: 4,
+ shadowBlur: 10,
+ shadowColor: 'rgba(13, 26, 38, 0.08)',
+ lineWidth: 1,
+ radius: 4,
+ strokeOpacity: 0.7
+ },
+ selected: {
+ shadowColor: '#ff240b',
+ shadowBlur: 4,
+ shadowOffsetX: 0,
+ shadowOffsetY: 0
+ // shadowColor: '#626262',
+ // shadowBlur: 8,
+ // shadowOffsetX: -1,
+ // shadowOffsetY: 3
+ },
+ unselected: {
+ shadowColor: ''
+ }
+ },
+ // 节点标签样式
+ nodeLabelCfg: {
+ positions: 'center',
+ style: {
+ fill: '#FFF'
+ }
+ },
+ // 连线样式
+ edgeStyle: {
+ default: {
+ stroke: '#53da3a',
+ lineWidth: 2,
+ strokeOpacity: 0.92,
+ lineAppendWidth: 10
+ // endArrow: true
+ },
+ active: {
+ shadowColor: 'red',
+ shadowBlur: 4,
+ shadowOffsetX: 0,
+ shadowOffsetY: 0
+ },
+ inactive: {
+ shadowColor: ''
+ },
+ selected: {
+ shadowColor: '#ff240b',
+ shadowBlur: 4,
+ shadowOffsetX: 0,
+ shadowOffsetY: 0
+ },
+ unselected: {
+ shadowColor: ''
+ }
+ },
+ // 锚点样式
+ anchorStyle: {
+ default: {
+ radius: 3,
+ symbol: 'circle',
+ fill: '#FFFFFF',
+ fillOpacity: 0,
+ stroke: '#1890FF',
+ strokeOpacity: 0,
+ cursor: 'crosshair'
+ },
+ hover: {
+ fillOpacity: 1,
+ strokeOpacity: 1
+ },
+ unhover: {
+ fillOpacity: 0,
+ strokeOpacity: 0
+ },
+ active: {
+ fillOpacity: 1,
+ strokeOpacity: 1
+ },
+ inactive: {
+ fillOpacity: 0,
+ strokeOpacity: 0
+ }
+ },
+ // 锚点背景样式
+ anchorBgStyle: {
+ default: {
+ radius: 10,
+ symbol: 'circle',
+ fill: '#1890FF',
+ fillOpacity: 0,
+ stroke: '#1890FF',
+ strokeOpacity: 0,
+ cursor: 'crosshair'
+ },
+ hover: {
+ fillOpacity: 1,
+ strokeOpacity: 1
+ },
+ unhover: {
+ fillOpacity: 0,
+ strokeOpacity: 0
+ },
+ active: {
+ fillOpacity: 0.3,
+ strokeOpacity: 0.5
+ },
+ inactive: {
+ fillOpacity: 0,
+ strokeOpacity: 0
+ }
+ },
+
+
+ nodeActivedOutterStyle: { lineWidth: 0 },
+ groupSelectedOutterStyle: { stroke: '#E0F0FF', lineWidth: 2 },
+ nodeSelectedOutterStyle: { stroke: '#E0F0FF', lineWidth: 2 },
+ edgeActivedStyle: { stroke: '#1890FF', strokeOpacity: .92 },
+ nodeActivedStyle: { fill: '#F3F9FF', stroke: '#1890FF' },
+ groupActivedStyle: { stroke: '#1890FF' },
+ edgeSelectedStyle: { lineWidth: 2, strokeOpacity: .92, stroke: '#A3B1BF' },
+ nodeSelectedStyle: { fill: '#F3F9FF', stroke: '#1890FF', fillOpacity: .4 },
+ groupSelectedStyle: { stroke: '#1890FF', fillOpacity: .92 },
+
+ groupBackgroundPadding: [40, 10, 10, 10],
+ groupLabelOffsetX: 10,
+ groupLabelOffsetY: 10,
+ edgeLabelStyle: { fill: '#666', textAlign: 'center', textBaseline: 'middle' },
+ edgeLabelRectPadding: 4,
+ edgeLabelRectStyle: { fill: 'white' },
+ nodeLabelStyle: { fill: '#666', textAlign: 'center', textBaseline: 'middle' },
+ groupStyle: { stroke: '#CED4D9', radius: 4 },
+ groupLabelStyle: { fill: '#666', textAlign: 'left', textBaseline: 'top' },
+ multiSelectRectStyle: { fill: '#1890FF', fillOpacity: .08, stroke: '#1890FF', opacity: .1 },
+ dragNodeHoverToGroupStyle: { stroke: '#1890FF', lineWidth: 2 },
+ dragNodeLeaveFromGroupStyle: { stroke: '#BAE7FF', lineWidth: 2 },
+ anchorPointStyle: { radius: 3.5, fill: '#fff', stroke: '#1890FF', lineAppendWidth: 12 },
+ anchorHotsoptStyle: { radius: 12, fill: '#1890FF', fillOpacity: .25 },
+ anchorHotsoptActivedStyle: { radius: 14 },
+ anchorPointHoverStyle: { radius: 4, fill: '#1890FF', fillOpacity: 1, stroke: '#1890FF' },
+ nodeControlPointStyle: { radius: 4, fill: '#fff', shadowBlur: 4, shadowColor: '#666' },
+ edgeControlPointStyle: { radius: 6, symbol: 'square', lineAppendWidth: 6, fillOpacity: 0, strokeOpacity: 0 },
+ nodeSelectedBoxStyle: { stroke: '#C2C2C2' },
+ cursor: {
+ panningCanvas: '-webkit-grabbing',
+ beforePanCanvas: '-webkit-grab',
+ hoverNode: 'move',
+ hoverEffectiveAnchor: 'crosshair',
+ hoverEdge: 'default',
+ hoverGroup: 'move',
+ hoverUnEffectiveAnchor: 'default',
+ hoverEdgeControllPoint: 'crosshair',
+ multiSelect: 'crosshair'
+ },
+ nodeDelegationStyle: {
+ stroke: '#1890FF',
+ fill: '#1890FF',
+ fillOpacity: .08,
+ lineDash: [4, 4],
+ radius: 4,
+ lineWidth: 1
+ },
+ edgeDelegationStyle: { stroke: '#1890FF', lineDash: [4, 4], lineWidth: 1 }
+}
diff --git a/examples/views/demos/packages/topology/src/theme/default-style.js b/examples/views/demos/packages/topology/src/theme/default-style.js
new file mode 100644
index 0000000..7838462
--- /dev/null
+++ b/examples/views/demos/packages/topology/src/theme/default-style.js
@@ -0,0 +1,179 @@
+/**
+ * @author: clay
+ * @data: 2019/08/15
+ * @description: default style
+ */
+
+export default {
+ // 节点样式
+ nodeStyle: {
+ default: {
+ stroke: '#CED4D9',
+ fill: 'transparent',
+ // shadowOffsetX: 0,
+ // shadowOffsetY: 4,
+ shadowBlur: 10,
+ shadowColor: 'rgba(13, 26, 38, 0.08)',
+ lineWidth: 1,
+ radius: 4,
+ strokeOpacity: 0.7
+ },
+ selected: {
+ shadowColor: '#ff240b',
+ shadowBlur: 2,
+ // shadowOffsetX: 0,
+ // shadowOffsetY: 0,
+ // fontSize:'50'
+ // shadowColor: '#626262',
+ // shadowBlur: 8,
+ // shadowOffsetX: -1,
+ // shadowOffsetY: 3
+ },
+ unselected: {
+ shadowColor: ''
+ }
+ },
+ // 节点标签样式
+ nodeLabelCfg: {
+ positions: 'center',
+ style: {
+ fill: '#000'
+ }
+ },
+ // 连线样式
+ edgeStyle: {
+ default: {
+ stroke: '#A3B1BF',
+ lineWidth: 2,
+ strokeOpacity: 0.92,
+ lineAppendWidth: 10
+ // endArrow: true
+ },
+ active: {
+ shadowColor: 'red',
+ shadowBlur: 4,
+ shadowOffsetX: 0,
+ shadowOffsetY: 0
+ },
+ inactive: {
+ shadowColor: ''
+ },
+ selected: {
+ shadowColor: '#ff240b',
+ shadowBlur: 4,
+ shadowOffsetX: 0,
+ shadowOffsetY: 0
+ },
+ unselected: {
+ shadowColor: ''
+ }
+ },
+ // 锚点样式
+ anchorStyle: {
+ default: {
+ r: 3,
+ symbol: 'circle',
+ lineWidth: 1,
+ fill: '#FFFFFF',
+ fillOpacity: 1,
+ stroke: '#096DD9',
+ strokeOpacity: 1,
+ cursor: 'crosshair'
+ },
+ hover: {
+ fillOpacity: 0.3,
+ strokeOpacity: 0.5
+ },
+ unhover: {
+ fillOpacity: 0,
+ strokeOpacity: 0
+ },
+ active: {
+ fillOpacity: 1,
+ strokeOpacity: 1
+ },
+ inactive: {
+ fillOpacity: 0,
+ strokeOpacity: 0
+ }
+ },
+ // 锚点背景样式
+ anchorBgStyle: {
+ default: {
+ r: 10,
+ symbol: 'circle',
+ fill: '#1890FF',
+ fillOpacity: 0,
+ stroke: '#1890FF',
+ strokeOpacity: 0,
+ cursor: 'crosshair'
+ },
+ hover: {
+ fillOpacity: 1,
+ strokeOpacity: 1
+ },
+ unhover: {
+ fillOpacity: 0,
+ strokeOpacity: 0
+ },
+ active: {
+ fillOpacity: 0.3,
+ strokeOpacity: 0.5
+ },
+ inactive: {
+ fillOpacity: 0,
+ strokeOpacity: 0
+ }
+ },
+
+
+ nodeActivedOutterStyle: { lineWidth: 0 },
+ groupSelectedOutterStyle: { stroke: '#E0F0FF', lineWidth: 2 },
+ nodeSelectedOutterStyle: { stroke: '#E0F0FF', lineWidth: 2 },
+ edgeActivedStyle: { stroke: '#1890FF', strokeOpacity: .92 },
+ nodeActivedStyle: { fill: '#F3F9FF', stroke: '#1890FF' },
+ groupActivedStyle: { stroke: '#1890FF' },
+ edgeSelectedStyle: { lineWidth: 2, strokeOpacity: .92, stroke: '#A3B1BF' },
+ nodeSelectedStyle: { fill: '#F3F9FF', stroke: '#1890FF', fillOpacity: .4 },
+ groupSelectedStyle: { stroke: '#1890FF', fillOpacity: .92 },
+
+ groupBackgroundPadding: [40, 10, 10, 10],
+ groupLabelOffsetX: 10,
+ groupLabelOffsetY: 10,
+ edgeLabelStyle: { fill: '#666', textAlign: 'center', textBaseline: 'middle' },
+ edgeLabelRectPadding: 4,
+ edgeLabelRectStyle: { fill: 'white' },
+ nodeLabelStyle: { fill: '#666', textAlign: 'center', textBaseline: 'middle' },
+ groupStyle: { stroke: '#CED4D9', radius: 4 },
+ groupLabelStyle: { fill: '#666', textAlign: 'left', textBaseline: 'top' },
+ multiSelectRectStyle: { fill: '#1890FF', fillOpacity: .08, stroke: '#1890FF', opacity: .1 },
+ dragNodeHoverToGroupStyle: { stroke: '#1890FF', lineWidth: 2 },
+ dragNodeLeaveFromGroupStyle: { stroke: '#BAE7FF', lineWidth: 2 },
+ anchorPointStyle: { radius: 3.5, fill: '#fff', stroke: '#1890FF', lineAppendWidth: 12 },
+ anchorHotsoptStyle: { radius: 12, fill: '#1890FF', fillOpacity: .25 },
+ anchorHotsoptActivedStyle: { radius: 14 },
+ anchorPointHoverStyle: { radius: 4, fill: '#1890FF', fillOpacity: 1, stroke: '#1890FF' },
+ nodeControlPointStyle: { radius: 4, fill: '#fff', shadowBlur: 4, shadowColor: '#666' },
+ edgeControlPointStyle: { radius: 6, symbol: 'square', lineAppendWidth: 6, fillOpacity: 0, strokeOpacity: 0 },
+ nodeSelectedBoxStyle: { stroke: '#C2C2C2' },
+ cursor: {
+ panningCanvas: '-webkit-grabbing',
+ beforePanCanvas: '-webkit-grab',
+ hoverNode: 'move',
+ hoverEffectiveAnchor: 'crosshair',
+ hoverEdge: 'default',
+ hoverGroup: 'move',
+ hoverUnEffectiveAnchor: 'default',
+ hoverEdgeControllPoint: 'crosshair',
+ multiSelect: 'crosshair'
+ },
+ nodeDelegationStyle: {
+ stroke: '#1890FF',
+ fill: '#1890FF',
+ fillOpacity: .08,
+ lineDash: [4, 4],
+ radius: 4,
+ lineWidth: 1
+ },
+ edgeDelegationStyle: { stroke: '#1890FF', lineDash: [4, 4], lineWidth: 1 }
+}
diff --git a/examples/views/demos/packages/topology/src/theme/index.js b/examples/views/demos/packages/topology/src/theme/index.js
new file mode 100644
index 0000000..02e514a
--- /dev/null
+++ b/examples/views/demos/packages/topology/src/theme/index.js
@@ -0,0 +1,15 @@
+/**
+ * @author: clay
+ * @data: 2019/08/15
+ * @description: 编辑器主题样式 - 节点、连线的预设样式
+ */
+
+import defaultStyle from './default-style'
+import darkStyle from './dark-style'
+import officeStyle from './office-style'
+
+export default {
+ defaultStyle,
+ darkStyle,
+ officeStyle
+}
diff --git a/examples/views/demos/packages/topology/src/theme/office-style.js b/examples/views/demos/packages/topology/src/theme/office-style.js
new file mode 100644
index 0000000..b1e21a7
--- /dev/null
+++ b/examples/views/demos/packages/topology/src/theme/office-style.js
@@ -0,0 +1,177 @@
+/**
+ * @author: clay
+ * @data: 2019/11/21
+ * @description: office style
+ */
+
+export default {
+ // 节点样式
+ nodeStyle: {
+ default: {
+ stroke: '#CED4D9',
+ fill: '#FFFFFF',
+ shadowOffsetX: 0,
+ shadowOffsetY: 4,
+ shadowBlur: 10,
+ shadowColor: 'rgba(13, 26, 38, 0.08)',
+ lineWidth: 1,
+ radius: 4,
+ strokeOpacity: 0.7
+ },
+ selected: {
+ shadowColor: '#ff240b',
+ shadowBlur: 4,
+ shadowOffsetX: 1,
+ shadowOffsetY: 1
+ // shadowColor: '#626262',
+ // shadowBlur: 8,
+ // shadowOffsetX: -1,
+ // shadowOffsetY: 3
+ },
+ unselected: {
+ shadowColor: ''
+ }
+ },
+ // 节点标签样式
+ nodeLabelCfg: {
+ positions: 'center',
+ style: {
+ fill: '#000'
+ }
+ },
+ // 连线样式
+ edgeStyle: {
+ default: {
+ stroke: '#41c23a',
+ lineWidth: 2,
+ strokeOpacity: 0.92,
+ lineAppendWidth: 10
+ // endArrow: true
+ },
+ active: {
+ shadowColor: 'red',
+ shadowBlur: 4,
+ shadowOffsetX: 0,
+ shadowOffsetY: 0
+ },
+ inactive: {
+ shadowColor: ''
+ },
+ selected: {
+ shadowColor: '#ff240b',
+ shadowBlur: 4,
+ shadowOffsetX: 0,
+ shadowOffsetY: 0
+ },
+ unselected: {
+ shadowColor: ''
+ }
+ },
+ // 锚点样式
+ anchorStyle: {
+ default: {
+ radius: 3,
+ symbol: 'circle',
+ fill: '#FFFFFF',
+ fillOpacity: 0,
+ stroke: '#1890FF',
+ strokeOpacity: 0,
+ cursor: 'crosshair'
+ },
+ hover: {
+ fillOpacity: 1,
+ strokeOpacity: 1
+ },
+ unhover: {
+ fillOpacity: 0,
+ strokeOpacity: 0
+ },
+ active: {
+ fillOpacity: 1,
+ strokeOpacity: 1
+ },
+ inactive: {
+ fillOpacity: 0,
+ strokeOpacity: 0
+ }
+ },
+ // 锚点背景样式
+ anchorBgStyle: {
+ default: {
+ radius: 10,
+ symbol: 'circle',
+ fill: '#1890FF',
+ fillOpacity: 0,
+ stroke: '#1890FF',
+ strokeOpacity: 0,
+ cursor: 'crosshair'
+ },
+ hover: {
+ fillOpacity: 1,
+ strokeOpacity: 1
+ },
+ unhover: {
+ fillOpacity: 0,
+ strokeOpacity: 0
+ },
+ active: {
+ fillOpacity: 0.3,
+ strokeOpacity: 0.5
+ },
+ inactive: {
+ fillOpacity: 0,
+ strokeOpacity: 0
+ }
+ },
+
+
+ nodeActivedOutterStyle: { lineWidth: 0 },
+ groupSelectedOutterStyle: { stroke: '#E0F0FF', lineWidth: 2 },
+ nodeSelectedOutterStyle: { stroke: '#E0F0FF', lineWidth: 2 },
+ edgeActivedStyle: { stroke: '#1890FF', strokeOpacity: .92 },
+ nodeActivedStyle: { fill: '#F3F9FF', stroke: '#1890FF' },
+ groupActivedStyle: { stroke: '#1890FF' },
+ edgeSelectedStyle: { lineWidth: 2, strokeOpacity: .92, stroke: '#A3B1BF' },
+ nodeSelectedStyle: { fill: '#F3F9FF', stroke: '#1890FF', fillOpacity: .4 },
+ groupSelectedStyle: { stroke: '#1890FF', fillOpacity: .92 },
+
+ groupBackgroundPadding: [40, 10, 10, 10],
+ groupLabelOffsetX: 10,
+ groupLabelOffsetY: 10,
+ edgeLabelStyle: { fill: '#666', textAlign: 'center', textBaseline: 'middle' },
+ edgeLabelRectPadding: 4,
+ edgeLabelRectStyle: { fill: 'white' },
+ nodeLabelStyle: { fill: '#666', textAlign: 'center', textBaseline: 'middle' },
+ groupStyle: { stroke: '#CED4D9', radius: 4 },
+ groupLabelStyle: { fill: '#666', textAlign: 'left', textBaseline: 'top' },
+ multiSelectRectStyle: { fill: '#1890FF', fillOpacity: .08, stroke: '#1890FF', opacity: .1 },
+ dragNodeHoverToGroupStyle: { stroke: '#1890FF', lineWidth: 2 },
+ dragNodeLeaveFromGroupStyle: { stroke: '#BAE7FF', lineWidth: 2 },
+ anchorPointStyle: { radius: 3.5, fill: '#fff', stroke: '#1890FF', lineAppendWidth: 12 },
+ anchorHotsoptStyle: { radius: 12, fill: '#1890FF', fillOpacity: .25 },
+ anchorHotsoptActivedStyle: { radius: 14 },
+ anchorPointHoverStyle: { radius: 4, fill: '#1890FF', fillOpacity: 1, stroke: '#1890FF' },
+ nodeControlPointStyle: { radius: 4, fill: '#fff', shadowBlur: 4, shadowColor: '#666' },
+ edgeControlPointStyle: { radius: 6, symbol: 'square', lineAppendWidth: 6, fillOpacity: 0, strokeOpacity: 0 },
+ nodeSelectedBoxStyle: { stroke: '#C2C2C2' },
+ cursor: {
+ panningCanvas: '-webkit-grabbing',
+ beforePanCanvas: '-webkit-grab',
+ hoverNode: 'move',
+ hoverEffectiveAnchor: 'crosshair',
+ hoverEdge: 'default',
+ hoverGroup: 'move',
+ hoverUnEffectiveAnchor: 'default',
+ hoverEdgeControllPoint: 'crosshair',
+ multiSelect: 'crosshair'
+ },
+ nodeDelegationStyle: {
+ stroke: '#1890FF',
+ fill: '#1890FF',
+ fillOpacity: .08,
+ lineDash: [4, 4],
+ radius: 4,
+ lineWidth: 1
+ },
+ edgeDelegationStyle: { stroke: '#1890FF', lineDash: [4, 4], lineWidth: 1 }
+}
diff --git a/examples/views/demos/packages/topology/src/toolbar-edit.vue b/examples/views/demos/packages/topology/src/toolbar-edit.vue
new file mode 100644
index 0000000..10eacef
--- /dev/null
+++ b/examples/views/demos/packages/topology/src/toolbar-edit.vue
@@ -0,0 +1,162 @@
+
+
+
+
+
+
+
diff --git a/examples/views/demos/packages/topology/src/toolbar-preview.vue b/examples/views/demos/packages/topology/src/toolbar-preview.vue
new file mode 100644
index 0000000..c0c7a0d
--- /dev/null
+++ b/examples/views/demos/packages/topology/src/toolbar-preview.vue
@@ -0,0 +1,171 @@
+
+
+
+
+
+
+
diff --git a/examples/views/demos/packages/topology/src/topology.vue b/examples/views/demos/packages/topology/src/topology.vue
new file mode 100644
index 0000000..54dd640
--- /dev/null
+++ b/examples/views/demos/packages/topology/src/topology.vue
@@ -0,0 +1,1447 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
![]()
+
+
+
+
+
+
+
+
+
节点
+
+
节点标签
+
+
+
+ 字段信息
+
+
+
+
+ {{ scope.row.key + ':' + scope.row.comment }}
+
+
+
+
+
+
+
+
+
+
+
+ {{ value }}
+
+
+
+
+
+
+
+
连线
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/examples/views/demos/packages/topology/src/utils/anchor/draw.js b/examples/views/demos/packages/topology/src/utils/anchor/draw.js
new file mode 100644
index 0000000..3913093
--- /dev/null
+++ b/examples/views/demos/packages/topology/src/utils/anchor/draw.js
@@ -0,0 +1,60 @@
+/**
+ * @author: clay
+ * @data: 2019/08/15
+ * @description: draw anchor
+ */
+
+import theme from '../../theme'
+
+export default function(cfg, group) {
+ const themeStyle = theme.defaultStyle // todo...先使用默认主题,后期可能增加其它风格的主体
+ let { anchorPoints, width, height, id } = cfg
+ if (anchorPoints && anchorPoints.length) {
+ for (let i = 0, len = anchorPoints.length; i < len; i++) {
+ let [x, y] = anchorPoints[i]
+ // 计算Marker中心点坐标
+ let originX = -width / 2
+ let originY = -height / 2
+ let anchorX = x * width + originX
+ let anchorY = y * height + originY
+ // 添加锚点背景
+ let anchorBgShape = group.addShape('marker', {
+ id: id + '_anchor_bg_' + i,
+ attrs: {
+ name: 'anchorBg',
+ x: anchorX,
+ y: anchorY,
+ // 锚点默认样式
+ ...themeStyle.anchorBgStyle.default
+ },
+ draggable: false,
+ name: 'markerBg-shape'
+ })
+ // 添加锚点Marker形状
+ // eslint-disable-next-line no-unused-vars
+ let anchorShape = group.addShape('marker', {
+ id: id + '_anchor_' + i,
+ attrs: {
+ name: 'anchor',
+ x: anchorX,
+ y: anchorY,
+ // 锚点默认样式
+ ...themeStyle.anchorStyle.default
+ },
+ draggable: false,
+ name: 'marker-shape'
+ })
+
+ anchorShape.on('mouseenter', function() {
+ anchorBgShape.attr({
+ ...themeStyle.anchorBgStyle.active
+ })
+ })
+ anchorShape.on('mouseleave', function() {
+ anchorBgShape.attr({
+ ...themeStyle.anchorBgStyle.inactive
+ })
+ })
+ }
+ }
+}
diff --git a/examples/views/demos/packages/topology/src/utils/anchor/draw_mark.js b/examples/views/demos/packages/topology/src/utils/anchor/draw_mark.js
new file mode 100644
index 0000000..6e185cb
--- /dev/null
+++ b/examples/views/demos/packages/topology/src/utils/anchor/draw_mark.js
@@ -0,0 +1,59 @@
+
+
+
+
+import theme from '../../theme'
+export default function(cfg, group) {
+ const themeStyle = theme.defaultStyle // todo...先使用默认主题,后期可能增加其它风格的主体
+ // console.log("cfg",cfg)
+ let { anchorPoints, width, height, id } = cfg
+ // console.log("基础信息",anchorPoints,"宽",width,"高",height,"节点id",id)
+ if (anchorPoints && anchorPoints.length) {
+ for (let i = 0, len = anchorPoints.length; i < len; i++) {
+ let [x, y] = anchorPoints[i]
+ // 计算Marker中心点坐标
+ let originX = -width / 2
+ let originY = -height / 2
+ let anchorX = x * width + originX+125
+ let anchorY = y * height + originY+158
+ // 添加锚点背景
+ let anchorBgShape = group.addShape('marker', {
+ id: id + '_anchor_bg_' + i,
+ attrs: {
+ name: 'anchorBg',
+ x: anchorX,
+ y: anchorY,
+ // 锚点默认样式
+ ...themeStyle.anchorBgStyle.default
+ },
+ draggable: false,
+ name: 'markerBg-shape'
+ })
+ // 添加锚点Marker形状
+ // eslint-disable-next-line no-unused-vars
+ let anchorShape = group.addShape('marker', {
+ id: id + '_anchor_' + i,
+ attrs: {
+ name: 'anchor',
+ x: anchorX,
+ y: anchorY,
+ // 锚点默认样式
+ ...themeStyle.anchorStyle.default
+ },
+ draggable: false,
+ name: 'marker-shape'
+ })
+
+ anchorShape.on('mouseenter', function() {
+ anchorBgShape.attr({
+ ...themeStyle.anchorBgStyle.active
+ })
+ })
+ anchorShape.on('mouseleave', function() {
+ anchorBgShape.attr({
+ ...themeStyle.anchorBgStyle.inactive
+ })
+ })
+ }
+ }
+}
diff --git a/examples/views/demos/packages/topology/src/utils/anchor/er-draw-left.js b/examples/views/demos/packages/topology/src/utils/anchor/er-draw-left.js
new file mode 100644
index 0000000..b56b459
--- /dev/null
+++ b/examples/views/demos/packages/topology/src/utils/anchor/er-draw-left.js
@@ -0,0 +1,44 @@
+import theme from '../../theme'
+
+
+
+
+export default function(group,label,x,y,i) {
+ const themeStyle = theme.defaultStyle // todo...先使用默认主题,后期可能增加其它风格的主体
+ let anchorBgShape = group.addShape('marker', {
+ id: label+ '_anchor_bg_lift_' + i,
+ attrs: {
+ name: 'anchorBg',
+ x: x,
+ y: y,
+ ...themeStyle.anchorBgStyle.default
+ },
+ draggable: false,
+ name: 'markerBg-shape'
+ })
+
+ let anchorShape = group.addShape('marker', {
+ id: label+ '_anchor_bg_lift_' + i,
+ attrs: {
+ name: 'anchor',
+ x: x,
+ y: y,
+ ...themeStyle.anchorStyle.default
+ },
+ draggable: false,
+ name: 'marker-shape'
+ })
+
+ anchorShape.on('mouseenter', function() {
+ anchorBgShape.attr({
+ ...themeStyle.anchorBgStyle.active
+ })
+ })
+ anchorShape.on('mouseleave', function() {
+ anchorBgShape.attr({
+ ...themeStyle.anchorBgStyle.inactive
+ })
+ })
+
+
+}
diff --git a/examples/views/demos/packages/topology/src/utils/anchor/index.js b/examples/views/demos/packages/topology/src/utils/anchor/index.js
new file mode 100644
index 0000000..875f653
--- /dev/null
+++ b/examples/views/demos/packages/topology/src/utils/anchor/index.js
@@ -0,0 +1,17 @@
+/**
+ * @author: clay
+ * @data: 2019/08/15
+ * @description: anchor
+ */
+
+// import draw from './draw'
+import erDrawLeft from './er-draw-left'
+import setState from './set-state'
+import drawMark from './draw_mark'
+// import update from './update'
+
+export default {
+ setState,
+ erDrawLeft,
+ drawMark,
+}
diff --git a/examples/views/demos/packages/topology/src/utils/anchor/set-state.js b/examples/views/demos/packages/topology/src/utils/anchor/set-state.js
new file mode 100644
index 0000000..fa3fd65
--- /dev/null
+++ b/examples/views/demos/packages/topology/src/utils/anchor/set-state.js
@@ -0,0 +1,28 @@
+/**
+ * @author: clay
+ * @data: 2019/08/15
+ * @description: set anchor state
+ */
+import theme from '../../theme'
+
+export default function(name, value, item) {
+
+ const themeStyle = theme.defaultStyle // todo...先使用默认主题,后期可能增加其它风格的主体
+ if (name === 'hover') {
+ // console.log(item)
+ let group = item.getContainer()
+ let children = group.get('children')
+ for (let i = 0, len = children.length; i < len; i++) {
+ let child = children[i]
+ // 处理锚点状态
+ // console.log(child.attrs.name)
+ if (child.attrs.name === 'anchorBg') {
+ if (value) {
+ child.attr(themeStyle.anchorStyle.hover)
+ } else {
+ child.attr(themeStyle.anchorStyle.unhover)
+ }
+ }
+ }
+ }
+}
diff --git a/examples/views/demos/packages/topology/src/utils/anchor/update.js b/examples/views/demos/packages/topology/src/utils/anchor/update.js
new file mode 100644
index 0000000..1509f05
--- /dev/null
+++ b/examples/views/demos/packages/topology/src/utils/anchor/update.js
@@ -0,0 +1,31 @@
+/**
+ * @author: clay
+ * @data: 2019/08/15
+ * @description: update anchor
+ */
+
+export default function(cfg, group) {
+ let { anchorPoints, width, height, id } = cfg
+ if (anchorPoints && anchorPoints.length) {
+ for (let i = 0, len = anchorPoints.length; i < len; i++) {
+ let [x, y] = anchorPoints[i]
+ // 计算Marker中心点坐标
+ let originX = -width / 2
+ let originY = -height / 2
+ let anchorX = x * width + originX
+ let anchorY = y * height + originY
+ // 锚点背景
+ let anchorBgShape = group.findById(id + '_anchor_bg_' + i)
+ // 锚点
+ let anchorShape = group.findById(id + '_anchor_' + i)
+ anchorBgShape.attr({
+ x: anchorX,
+ y: anchorY
+ })
+ anchorShape.attr({
+ x: anchorX,
+ y: anchorY
+ })
+ }
+ }
+}
diff --git a/examples/views/demos/packages/topology/src/utils/collapse/index.js b/examples/views/demos/packages/topology/src/utils/collapse/index.js
new file mode 100644
index 0000000..d43dc28
--- /dev/null
+++ b/examples/views/demos/packages/topology/src/utils/collapse/index.js
@@ -0,0 +1,11 @@
+/**
+ * @author: clay
+ * @data: 2021/5/11 17:28
+ * @email: clay@hchyun.com
+ * @description: node
+ */
+import setState from './set-state'
+
+export default {
+ setState
+}
diff --git a/examples/views/demos/packages/topology/src/utils/collapse/move.js b/examples/views/demos/packages/topology/src/utils/collapse/move.js
new file mode 100644
index 0000000..139e6d3
--- /dev/null
+++ b/examples/views/demos/packages/topology/src/utils/collapse/move.js
@@ -0,0 +1,57 @@
+/**
+ * @author: clay
+ * @data: 2021/5/11 17:33
+ * @email: clay@hchyun.com
+ * @description: node
+ */
+export default function(e){
+ e.preventDefault();
+ const {
+ graph
+ } = this;
+ const nodes = graph.getNodes().filter((n) => {
+ const bbox = n.getBBox();
+
+ return isInBBox(graph.getPointByClient(e.clientX, e.clientY), bbox);
+ });
+ if (nodes) {
+ nodes.forEach((node) => {
+ const model = node.getModel();
+ if (model.attrs.length < 9) {
+ return;
+ }
+ const idx = model.startIndex || 0;
+ let startX = model.startX || 0.5;
+ let startIndex = idx + e.deltaY * 0.02;
+ startX -= e.deltaX;
+ if (startIndex < 0) {
+ startIndex = 0;
+ }
+ if (startX > 0) {
+ startX = 0;
+ }
+ if (startIndex > model.attrs.length - 1) {
+ startIndex = model.attrs.length - 1;
+ }
+ graph.update(node, {
+ startIndex,
+ startX,
+ });
+ });
+ }
+}
+const isInBBox = (point, bbox) => {
+ const {
+ x,
+ y
+ } = point;
+ const {
+ minX,
+ minY,
+ maxX,
+ maxY
+ } = bbox;
+
+ return x < maxX && x > minX && y > minY && y < maxY;
+};
+
diff --git a/examples/views/demos/packages/topology/src/utils/collapse/set-state.js b/examples/views/demos/packages/topology/src/utils/collapse/set-state.js
new file mode 100644
index 0000000..c946239
--- /dev/null
+++ b/examples/views/demos/packages/topology/src/utils/collapse/set-state.js
@@ -0,0 +1,33 @@
+/**
+ * @author: clay
+ * @data: 2021/5/11 17:28
+ * @email: clay@hchyun.com
+ * @description: node
+ */
+export default function(e){
+ const {
+ graph
+ } = this;
+ const {
+ y
+ } = e;
+ const item = e.item;
+ const shape = e.shape;
+ if (!item) {
+ return;
+ }
+
+ if (shape.get("name") === "collapse") {
+ graph.updateItem(item, {
+ collapsed: true,
+ size: [300, 50],
+ });
+ setTimeout(() => graph.layout(), 100);
+ } else if (shape.get("name") === "expand") {
+ graph.updateItem(item, {
+ collapsed: false,
+ size: [300, 500],
+ });
+ setTimeout(() => graph.layout(), 100);
+ }
+}
diff --git a/examples/views/demos/packages/topology/src/utils/edge/index.js b/examples/views/demos/packages/topology/src/utils/edge/index.js
new file mode 100644
index 0000000..8002373
--- /dev/null
+++ b/examples/views/demos/packages/topology/src/utils/edge/index.js
@@ -0,0 +1,11 @@
+/**
+ * @author: clay
+ * @data: 2019/08/15
+ * @description: edge
+ */
+
+import setState from './set-state'
+
+export default {
+ setState
+}
diff --git a/examples/views/demos/packages/topology/src/utils/edge/set-state.js b/examples/views/demos/packages/topology/src/utils/edge/set-state.js
new file mode 100644
index 0000000..9090426
--- /dev/null
+++ b/examples/views/demos/packages/topology/src/utils/edge/set-state.js
@@ -0,0 +1,26 @@
+/**
+ * @author: clay
+ * @data: 2019/08/15
+ * @description: set edge state
+ */
+
+import theme from '../../theme'
+
+export default function(name, value, item) {
+ const group = item.getContainer()
+ const shape = group.get('children')[0] // 顺序根据 draw 时确定
+ const themeStyle = theme.defaultStyle // todo...先使用默认主题,后期可能增加其它风格的主体
+ if (name === 'active') {
+ if (value) {
+ shape.attr(themeStyle.edgeStyle.active)
+ } else {
+ shape.attr(themeStyle.edgeStyle.inactive)
+ }
+ } else if (name === 'selected') {
+ if (value) {
+ shape.attr(themeStyle.edgeStyle.selected)
+ } else {
+ shape.attr(themeStyle.edgeStyle.unselected)
+ }
+ }
+}
diff --git a/examples/views/demos/packages/topology/src/utils/index.js b/examples/views/demos/packages/topology/src/utils/index.js
new file mode 100644
index 0000000..2b33f54
--- /dev/null
+++ b/examples/views/demos/packages/topology/src/utils/index.js
@@ -0,0 +1,66 @@
+/**
+ * @author: clay
+ * @data: 2019/08/15
+ * @description: graph utils
+ */
+
+import node from './node'
+import anchor from './anchor'
+import edge from './edge'
+import collapse from './collapse'
+
+/**
+ * 比较两个对象的内容是否相同(两个对象的键值都相同)
+ * @param obj1
+ * @param obj2
+ * @returns {*}
+ */
+const isObjectValueEqual = function(obj1, obj2) {
+ let o1 = obj1 instanceof Object
+ let o2 = obj2 instanceof Object
+ // 不是对象的情况
+ if (!o1 || !o2) {
+ return obj1 === obj2
+ }
+ // 对象的属性(key值)个数不相等
+ if (Object.keys(obj1).length !== Object.keys(obj2).length) {
+ return false
+ }
+ // 判断每个属性(如果属性值也是对象则需要递归)
+ for (let attr in obj1) {
+ let t1 = obj1[attr] instanceof Object
+ let t2 = obj2[attr] instanceof Object
+ if (t1 && t2) {
+ return isObjectValueEqual(obj1[attr], obj2[attr])
+ } else if (obj1[attr] !== obj2[attr]) {
+ return false
+ }
+ }
+ return true
+}
+
+
+/**
+ * 生成uuid算法,碰撞率低于1/2^^122
+ * @returns {string}
+ */
+const generateUUID = function() {
+ let d = new Date().getTime()
+ // x 是 0-9 或 a-f 范围内的一个32位十六进制数
+ let uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
+ let r = (d + Math.random() * 16) % 16 | 0
+ d = Math.floor(d / 16)
+ return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16)
+ })
+ return uuid
+}
+
+export default {
+ node,
+ anchor,
+ edge,
+ collapse,
+ // 通用工具类函数
+ isObjectValueEqual,
+ generateUUID
+}
diff --git a/examples/views/demos/packages/topology/src/utils/node/index.js b/examples/views/demos/packages/topology/src/utils/node/index.js
new file mode 100644
index 0000000..61e5741
--- /dev/null
+++ b/examples/views/demos/packages/topology/src/utils/node/index.js
@@ -0,0 +1,11 @@
+/**
+ * @author: clay
+ * @data: 2019/08/15
+ * @description: node
+ */
+
+import setState from './set-state'
+
+export default {
+ setState
+}
diff --git a/examples/views/demos/packages/topology/src/utils/node/set-state.js b/examples/views/demos/packages/topology/src/utils/node/set-state.js
new file mode 100644
index 0000000..4b60368
--- /dev/null
+++ b/examples/views/demos/packages/topology/src/utils/node/set-state.js
@@ -0,0 +1,27 @@
+/**
+ * @author: clay
+ * @data: 2019/08/15
+ * @description: set node state
+ */
+
+import theme from '../../theme'
+
+export default function(name, value, item) {
+ const group = item.getContainer()
+ const shape = group.get('children')[0] // 顺序根据 draw 时确定
+ const themeStyle = theme.defaultStyle // todo...先使用默认主题,后期可能增加其它风格的主体
+ if (name === 'active') {
+ if (value) {
+ shape.attr(themeStyle.nodeStyle.active)
+ } else {
+ shape.attr(themeStyle.nodeStyle.inactive)
+ }
+ } else if (name === 'selected') {
+ if (value) {
+ group.attr(themeStyle.nodeStyle.selected)
+ } else {
+ group.attr(themeStyle.nodeStyle.default)
+ }
+ }
+
+}
diff --git a/examples/views/demos/topology.vue b/examples/views/demos/topology.vue
new file mode 100644
index 0000000..f021955
--- /dev/null
+++ b/examples/views/demos/topology.vue
@@ -0,0 +1,100 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/examples/views/demos/utils/index.js b/examples/views/demos/utils/index.js
new file mode 100644
index 0000000..21ebc8c
--- /dev/null
+++ b/examples/views/demos/utils/index.js
@@ -0,0 +1,47 @@
+/**
+ * Created by clay on 2019/10/14
+ * Description: common utils
+ */
+
+/**
+ * This is just a simple version of deep copy
+ * Has a lot of edge cases bug
+ * If you want to use a perfect deep copy, use lodash's _.cloneDeep
+ * @param {Object} source
+ * @returns {Object} targetObj
+ */
+export function deepClone(source) {
+ if (!source && typeof source !== 'object') {
+ throw new Error('error arguments: deepClone')
+ }
+ let targetObj = source.constructor === Array ? [] : {}
+ Object.keys(source).forEach(key => {
+ if (source[key] && typeof source[key] === 'object') {
+ targetObj[key] = deepClone(source[key])
+ } else {
+ targetObj[key] = source[key]
+ }
+ })
+ return targetObj
+}
+
+/**
+ * Randomly extract one or more elements from an array
+ * If you want to use a perfect solution, use lodash's _.sample or _.sampleSize
+ * @param {Array} arr
+ * @param {number} count
+ * @returns {Array} arr
+ */
+export function getRandomArrayElements(arr, count = 1) {
+ if (count > arr.length) {
+ throw new Error('error arguments: count is greater than length of array')
+ }
+ let shuffled = arr.slice(0), i = arr.length, min = i - count, temp, index
+ while (i-- > min) {
+ index = Math.floor((i + 1) * Math.random())
+ temp = shuffled[index]
+ shuffled[index] = shuffled[i]
+ shuffled[i] = temp
+ }
+ return shuffled.slice(min)
+}
diff --git a/examples/views/error-pages/404.vue b/examples/views/error-pages/404.vue
new file mode 100644
index 0000000..0861799
--- /dev/null
+++ b/examples/views/error-pages/404.vue
@@ -0,0 +1,270 @@
+
+
+
+
+
+
+
+
+
+
OOPS!
+
All rights reserved
+
clay
+
+
{{ message }}
+
Please check that the URL you entered is correct, or click the button below to return to the homepage.
+
Back to home
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..2d2c6c5
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,12095 @@
+{
+ "name": "@chaincloud/ClayTop",
+ "version": "0.1.0",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "@antv/dom-util": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npm.taobao.org/@antv/dom-util/download/@antv/dom-util-2.0.2.tgz",
+ "integrity": "sha1-THsKGV4CflVXBDWmglzsVt+wtZA=",
+ "requires": {
+ "tslib": "^1.10.0"
+ }
+ },
+ "@antv/event-emitter": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npm.taobao.org/@antv/event-emitter/download/@antv/event-emitter-0.1.2.tgz",
+ "integrity": "sha1-oXt8uG5tBxiA3Gv7IydW+IYk7Lw="
+ },
+ "@antv/g-base": {
+ "version": "0.4.7",
+ "resolved": "https://registry.npm.taobao.org/@antv/g-base/download/@antv/g-base-0.4.7.tgz",
+ "integrity": "sha1-dpj8TIyzgfK3iaMPvrJrHojEgZY=",
+ "requires": {
+ "@antv/event-emitter": "^0.1.1",
+ "@antv/g-math": "^0.1.3",
+ "@antv/matrix-util": "^3.1.0-beta.1",
+ "@antv/path-util": "~2.0.5",
+ "@antv/util": "~2.0.0",
+ "@types/d3-timer": "^1.0.9",
+ "d3-ease": "^1.0.5",
+ "d3-interpolate": "^1.3.2",
+ "d3-timer": "^1.0.9",
+ "detect-browser": "^5.1.0"
+ },
+ "dependencies": {
+ "@antv/matrix-util": {
+ "version": "3.1.0-beta.2",
+ "resolved": "https://registry.npm.taobao.org/@antv/matrix-util/download/@antv/matrix-util-3.1.0-beta.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40antv%2Fmatrix-util%2Fdownload%2F%40antv%2Fmatrix-util-3.1.0-beta.2.tgz",
+ "integrity": "sha1-tK+vtw299Sr/yjCNNUbIoJD9I8o=",
+ "requires": {
+ "@antv/util": "^2.0.9",
+ "gl-matrix": "^3.3.0",
+ "tslib": "^1.10.0"
+ }
+ }
+ }
+ },
+ "@antv/g-canvas": {
+ "version": "0.4.13",
+ "resolved": "https://registry.npm.taobao.org/@antv/g-canvas/download/@antv/g-canvas-0.4.13.tgz",
+ "integrity": "sha1-xl3NUFNd0CjNWYOnBxVr5CxXRJY=",
+ "requires": {
+ "@antv/g-base": "^0.4.7",
+ "@antv/g-math": "^0.1.3",
+ "@antv/path-util": "~2.0.5",
+ "@antv/util": "~2.0.0",
+ "gl-matrix": "^3.0.0"
+ }
+ },
+ "@antv/g-math": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npm.taobao.org/@antv/g-math/download/@antv/g-math-0.1.3.tgz",
+ "integrity": "sha1-iSL0S+90MUZAtZH1NYPBIXtxXA8=",
+ "requires": {
+ "@antv/util": "~2.0.0",
+ "gl-matrix": "^3.0.0"
+ }
+ },
+ "@antv/g-svg": {
+ "version": "0.4.7",
+ "resolved": "https://registry.npm.taobao.org/@antv/g-svg/download/@antv/g-svg-0.4.7.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40antv%2Fg-svg%2Fdownload%2F%40antv%2Fg-svg-0.4.7.tgz",
+ "integrity": "sha1-DWXh2zTm3+YJqts+3fR0jbAvCwE=",
+ "requires": {
+ "@antv/g-base": "^0.4.7",
+ "@antv/g-math": "^0.1.3",
+ "@antv/util": "~2.0.0",
+ "detect-browser": "^4.6.0"
+ },
+ "dependencies": {
+ "detect-browser": {
+ "version": "4.8.0",
+ "resolved": "https://registry.npm.taobao.org/detect-browser/download/detect-browser-4.8.0.tgz?cache=0&sync_timestamp=1592803473542&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdetect-browser%2Fdownload%2Fdetect-browser-4.8.0.tgz",
+ "integrity": "sha1-HXO9iMF76GaQGVDOCqrh7QYJAsY="
+ }
+ }
+ },
+ "@antv/g6": {
+ "version": "3.5.7",
+ "resolved": "https://registry.npm.taobao.org/@antv/g6/download/@antv/g6-3.5.7.tgz",
+ "integrity": "sha1-Xk2s4HjgjWUncCMMKonvUh1wxBM=",
+ "requires": {
+ "@antv/dom-util": "^2.0.1",
+ "@antv/event-emitter": "~0.1.0",
+ "@antv/g-base": "^0.4.1",
+ "@antv/g-canvas": "^0.4.3",
+ "@antv/g-math": "^0.1.1",
+ "@antv/g-svg": "^0.4.1",
+ "@antv/hierarchy": "^0.6.2",
+ "@antv/matrix-util": "^2.0.4",
+ "@antv/path-util": "^2.0.3",
+ "@antv/scale": "^0.3.1",
+ "@antv/util": "~2.0.5",
+ "d3-force": "^2.0.1",
+ "dagre": "^0.8.5",
+ "lodash": "^4.17.15",
+ "ml-matrix": "^6.5.0"
+ }
+ },
+ "@antv/gl-matrix": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npm.taobao.org/@antv/gl-matrix/download/@antv/gl-matrix-2.7.1.tgz",
+ "integrity": "sha1-rLjjf3qz3wE0WrpDcteUK+QuuhQ="
+ },
+ "@antv/hierarchy": {
+ "version": "0.6.4",
+ "resolved": "https://registry.npm.taobao.org/@antv/hierarchy/download/@antv/hierarchy-0.6.4.tgz",
+ "integrity": "sha1-jLCJo78op/pLP0PzLhEPyDTOohc=",
+ "requires": {
+ "@antv/util": "^2.0.7"
+ }
+ },
+ "@antv/matrix-util": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npm.taobao.org/@antv/matrix-util/download/@antv/matrix-util-2.0.7.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40antv%2Fmatrix-util%2Fdownload%2F%40antv%2Fmatrix-util-2.0.7.tgz",
+ "integrity": "sha1-pRkFmdQkwVGKG16zpUgnHX6Y/EQ=",
+ "requires": {
+ "@antv/gl-matrix": "^2.7.1",
+ "@antv/util": "^2.0.7",
+ "tslib": "^1.10.0"
+ }
+ },
+ "@antv/path-util": {
+ "version": "2.0.8",
+ "resolved": "https://registry.npm.taobao.org/@antv/path-util/download/@antv/path-util-2.0.8.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40antv%2Fpath-util%2Fdownload%2F%40antv%2Fpath-util-2.0.8.tgz",
+ "integrity": "sha1-m8VNK3GYqtmIqcxKbekFTyaRm4Q=",
+ "requires": {
+ "@antv/util": "^2.0.9",
+ "tslib": "^1.10.0"
+ }
+ },
+ "@antv/scale": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npm.taobao.org/@antv/scale/download/@antv/scale-0.3.1.tgz",
+ "integrity": "sha1-8QiFgnXKjCfXrz6zdXq3PyY2KZw=",
+ "requires": {
+ "@antv/util": "~2.0.3",
+ "fecha": "~3.0.3",
+ "tslib": "^1.10.0"
+ }
+ },
+ "@antv/util": {
+ "version": "2.0.9",
+ "resolved": "https://registry.npm.taobao.org/@antv/util/download/@antv/util-2.0.9.tgz?cache=0&sync_timestamp=1588818415461&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40antv%2Futil%2Fdownload%2F%40antv%2Futil-2.0.9.tgz",
+ "integrity": "sha1-vT4pajkuEfvieB/eOdjnC6HFPtA=",
+ "requires": {
+ "tslib": "^1.10.0"
+ }
+ },
+ "@babel/code-frame": {
+ "version": "7.5.5",
+ "resolved": "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.5.5.tgz",
+ "integrity": "sha1-vAeC9tafe31JUxIZaZuYj2aaj50=",
+ "dev": true,
+ "requires": {
+ "@babel/highlight": "^7.0.0"
+ }
+ },
+ "@babel/core": {
+ "version": "7.6.4",
+ "resolved": "https://registry.npm.taobao.org/@babel/core/download/@babel/core-7.6.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.6.4.tgz",
+ "integrity": "sha1-br2f4Akl9sPhd7tyahiLX1eAiP8=",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.5.5",
+ "@babel/generator": "^7.6.4",
+ "@babel/helpers": "^7.6.2",
+ "@babel/parser": "^7.6.4",
+ "@babel/template": "^7.6.0",
+ "@babel/traverse": "^7.6.3",
+ "@babel/types": "^7.6.3",
+ "convert-source-map": "^1.1.0",
+ "debug": "^4.1.0",
+ "json5": "^2.1.0",
+ "lodash": "^4.17.13",
+ "resolve": "^1.3.2",
+ "semver": "^5.4.1",
+ "source-map": "^0.5.0"
+ }
+ },
+ "@babel/generator": {
+ "version": "7.6.4",
+ "resolved": "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.6.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.6.4.tgz",
+ "integrity": "sha1-pPhDcoe/lnGwf0g7duO7cxvJdnE=",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.6.3",
+ "jsesc": "^2.5.1",
+ "lodash": "^4.17.13",
+ "source-map": "^0.5.0"
+ }
+ },
+ "@babel/helper-annotate-as-pure": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.0.0.tgz",
+ "integrity": "sha1-Mj053QtQ4Qx8Bsp9djjmhk2MXDI=",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@babel/helper-builder-binary-assignment-operator-visitor": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-builder-binary-assignment-operator-visitor/download/@babel/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz",
+ "integrity": "sha1-a2lijf5Ah3mODE7Zjj1Kay+9L18=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-explode-assignable-expression": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@babel/helper-call-delegate": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-call-delegate/download/@babel/helper-call-delegate-7.4.4.tgz",
+ "integrity": "sha1-h8H4yhmtVSpzanonscH8+LH/H0M=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-hoist-variables": "^7.4.4",
+ "@babel/traverse": "^7.4.4",
+ "@babel/types": "^7.4.4"
+ }
+ },
+ "@babel/helper-create-class-features-plugin": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-create-class-features-plugin/download/@babel/helper-create-class-features-plugin-7.6.0.tgz?cache=0&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.6.0.tgz",
+ "integrity": "sha1-dpcRrMqIm+Nx6bwutoZB1VIYAh8=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-function-name": "^7.1.0",
+ "@babel/helper-member-expression-to-functions": "^7.5.5",
+ "@babel/helper-optimise-call-expression": "^7.0.0",
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-replace-supers": "^7.5.5",
+ "@babel/helper-split-export-declaration": "^7.4.4"
+ }
+ },
+ "@babel/helper-define-map": {
+ "version": "7.5.5",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-define-map/download/@babel/helper-define-map-7.5.5.tgz",
+ "integrity": "sha1-PewywgRvN+CbKMk+sLED/Sol02k=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-function-name": "^7.1.0",
+ "@babel/types": "^7.5.5",
+ "lodash": "^4.17.13"
+ }
+ },
+ "@babel/helper-explode-assignable-expression": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-explode-assignable-expression/download/@babel/helper-explode-assignable-expression-7.1.0.tgz",
+ "integrity": "sha1-U3+hP28WdN90WwwA7I/k6ZaByPY=",
+ "dev": true,
+ "requires": {
+ "@babel/traverse": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@babel/helper-function-name": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.1.0.tgz",
+ "integrity": "sha1-oM6wFoX3M1XUNgwSR/WCv6/I/1M=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-get-function-arity": "^7.0.0",
+ "@babel/template": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@babel/helper-get-function-arity": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.0.0.tgz",
+ "integrity": "sha1-g1ctQyDipGVyY3NBE8QoaLZOScM=",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@babel/helper-hoist-variables": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.4.4.tgz",
+ "integrity": "sha1-Api18lyMCcUxAtUqxKmPdz6yhQo=",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.4.4"
+ }
+ },
+ "@babel/helper-member-expression-to-functions": {
+ "version": "7.5.5",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.5.5.tgz",
+ "integrity": "sha1-H7W47ERTqTxDnun+Ou6kqEt2tZA=",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.5.5"
+ }
+ },
+ "@babel/helper-module-imports": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-module-imports/download/@babel/helper-module-imports-7.0.0.tgz",
+ "integrity": "sha1-lggbcRHkhtpNLNlxrRpP4hbMLj0=",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@babel/helper-module-transforms": {
+ "version": "7.5.5",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.5.5.tgz",
+ "integrity": "sha1-+E/4oJA43Lyh/UNVZhpQCTcWW0o=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-imports": "^7.0.0",
+ "@babel/helper-simple-access": "^7.1.0",
+ "@babel/helper-split-export-declaration": "^7.4.4",
+ "@babel/template": "^7.4.4",
+ "@babel/types": "^7.5.5",
+ "lodash": "^4.17.13"
+ }
+ },
+ "@babel/helper-optimise-call-expression": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.0.0.tgz",
+ "integrity": "sha1-opIMVwKwc8Fd5REGIAqoytIEl9U=",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@babel/helper-plugin-utils": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.0.0.tgz",
+ "integrity": "sha1-u7P77phmHFaQNCN8wDlnupm08lA=",
+ "dev": true
+ },
+ "@babel/helper-regex": {
+ "version": "7.5.5",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-regex/download/@babel/helper-regex-7.5.5.tgz?cache=0&sync_timestamp=1563398528521&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-regex%2Fdownload%2F%40babel%2Fhelper-regex-7.5.5.tgz",
+ "integrity": "sha1-CqaCT3EAouDonBUnwjk2wVLKs1E=",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.13"
+ }
+ },
+ "@babel/helper-remap-async-to-generator": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-remap-async-to-generator/download/@babel/helper-remap-async-to-generator-7.1.0.tgz",
+ "integrity": "sha1-Nh2AghtvONp1vT8HheziCojF/n8=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.0.0",
+ "@babel/helper-wrap-function": "^7.1.0",
+ "@babel/template": "^7.1.0",
+ "@babel/traverse": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@babel/helper-replace-supers": {
+ "version": "7.5.5",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.5.5.tgz",
+ "integrity": "sha1-+EzkPfAxIi0rrQaNJibLV5nDS8I=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-member-expression-to-functions": "^7.5.5",
+ "@babel/helper-optimise-call-expression": "^7.0.0",
+ "@babel/traverse": "^7.5.5",
+ "@babel/types": "^7.5.5"
+ }
+ },
+ "@babel/helper-simple-access": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-simple-access/download/@babel/helper-simple-access-7.1.0.tgz",
+ "integrity": "sha1-Ze65VMjCRb6qToWdphiPOdceWFw=",
+ "dev": true,
+ "requires": {
+ "@babel/template": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@babel/helper-split-export-declaration": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.4.4.tgz",
+ "integrity": "sha1-/5SJSjQL549T8GrwOLIFxJ2ZNnc=",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.4.4"
+ }
+ },
+ "@babel/helper-wrap-function": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npm.taobao.org/@babel/helper-wrap-function/download/@babel/helper-wrap-function-7.2.0.tgz",
+ "integrity": "sha1-xOABJEV2nigVtVKW6tQ6lYVJ9vo=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-function-name": "^7.1.0",
+ "@babel/template": "^7.1.0",
+ "@babel/traverse": "^7.1.0",
+ "@babel/types": "^7.2.0"
+ }
+ },
+ "@babel/helpers": {
+ "version": "7.6.2",
+ "resolved": "https://registry.npm.taobao.org/@babel/helpers/download/@babel/helpers-7.6.2.tgz",
+ "integrity": "sha1-aB/+SJ6k3MVfI85GnljlnBwEUVM=",
+ "dev": true,
+ "requires": {
+ "@babel/template": "^7.6.0",
+ "@babel/traverse": "^7.6.2",
+ "@babel/types": "^7.6.0"
+ }
+ },
+ "@babel/highlight": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.5.0.tgz",
+ "integrity": "sha1-VtETEr2SSPphlZHQJHK+boyzJUA=",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.0.0",
+ "esutils": "^2.0.2",
+ "js-tokens": "^4.0.0"
+ }
+ },
+ "@babel/parser": {
+ "version": "7.6.4",
+ "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.6.4.tgz?cache=0&sync_timestamp=1570717401366&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.6.4.tgz",
+ "integrity": "sha1-y5s2p0ghECgtXLbdQk7JJitHPYE=",
+ "dev": true
+ },
+ "@babel/plugin-proposal-async-generator-functions": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-async-generator-functions/download/@babel/plugin-proposal-async-generator-functions-7.2.0.tgz",
+ "integrity": "sha1-somzBmadzkrSCwJSiJoVdoydQX4=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-remap-async-to-generator": "^7.1.0",
+ "@babel/plugin-syntax-async-generators": "^7.2.0"
+ }
+ },
+ "@babel/plugin-proposal-class-properties": {
+ "version": "7.5.5",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-class-properties/download/@babel/plugin-proposal-class-properties-7.5.5.tgz",
+ "integrity": "sha1-qXTPrh43wxEOcfPGouSLjnGVjNQ=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-create-class-features-plugin": "^7.5.5",
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-proposal-decorators": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-decorators/download/@babel/plugin-proposal-decorators-7.6.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-decorators%2Fdownload%2F%40babel%2Fplugin-proposal-decorators-7.6.0.tgz",
+ "integrity": "sha1-ZlnSVyoX1wq9aBI+iaEqQ9kKoww=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-create-class-features-plugin": "^7.6.0",
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-syntax-decorators": "^7.2.0"
+ }
+ },
+ "@babel/plugin-proposal-json-strings": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-json-strings/download/@babel/plugin-proposal-json-strings-7.2.0.tgz",
+ "integrity": "sha1-Vo7MRGxhSK5rJn8CVREwiR4p8xc=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-syntax-json-strings": "^7.2.0"
+ }
+ },
+ "@babel/plugin-proposal-object-rest-spread": {
+ "version": "7.6.2",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-object-rest-spread/download/@babel/plugin-proposal-object-rest-spread-7.6.2.tgz",
+ "integrity": "sha1-j/zMjzplRen3iYi2v0/ogbiOgJY=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-syntax-object-rest-spread": "^7.2.0"
+ }
+ },
+ "@babel/plugin-proposal-optional-catch-binding": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-optional-catch-binding/download/@babel/plugin-proposal-optional-catch-binding-7.2.0.tgz",
+ "integrity": "sha1-E12B7baKCB5V5W7EhUHs6AZcOPU=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.2.0"
+ }
+ },
+ "@babel/plugin-proposal-unicode-property-regex": {
+ "version": "7.6.2",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-unicode-property-regex/download/@babel/plugin-proposal-unicode-property-regex-7.6.2.tgz",
+ "integrity": "sha1-BUE3YolPQb/kK5pegJGb1XXcyAI=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-regex": "^7.4.4",
+ "regexpu-core": "^4.6.0"
+ }
+ },
+ "@babel/plugin-syntax-async-generators": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-async-generators/download/@babel/plugin-syntax-async-generators-7.2.0.tgz",
+ "integrity": "sha1-aeHw2zTG9aDPfiszI78VmnbIy38=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-syntax-decorators": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-decorators/download/@babel/plugin-syntax-decorators-7.2.0.tgz",
+ "integrity": "sha1-xQsblX3MaeSxEntl4cM+72FXDBs=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-syntax-dynamic-import": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-dynamic-import/download/@babel/plugin-syntax-dynamic-import-7.2.0.tgz",
+ "integrity": "sha1-acFZ/69JmBIhYa2OvF5tH1XfhhI=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-syntax-json-strings": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-json-strings/download/@babel/plugin-syntax-json-strings-7.2.0.tgz",
+ "integrity": "sha1-cr0T9v/h0lk4Ep0qGGsR/WKVFHA=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-syntax-jsx": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-jsx/download/@babel/plugin-syntax-jsx-7.2.0.tgz",
+ "integrity": "sha1-C4WjtLx830zEuL8jYzW5B8oi58c=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-syntax-object-rest-spread": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-object-rest-spread/download/@babel/plugin-syntax-object-rest-spread-7.2.0.tgz",
+ "integrity": "sha1-O3o+czUQxX6CC5FCpleayLDfrS4=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-syntax-optional-catch-binding": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-optional-catch-binding/download/@babel/plugin-syntax-optional-catch-binding-7.2.0.tgz",
+ "integrity": "sha1-qUAT1u2okI3+akd+f57ahWVuz1w=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-arrow-functions": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-arrow-functions/download/@babel/plugin-transform-arrow-functions-7.2.0.tgz",
+ "integrity": "sha1-mur75Nb/xlY7+Pg3IJFijwB3lVA=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-async-to-generator": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-async-to-generator/download/@babel/plugin-transform-async-to-generator-7.5.0.tgz",
+ "integrity": "sha1-iaOEigFmYjtbxIEWS1k2q5R+iH4=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-imports": "^7.0.0",
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-remap-async-to-generator": "^7.1.0"
+ }
+ },
+ "@babel/plugin-transform-block-scoped-functions": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoped-functions/download/@babel/plugin-transform-block-scoped-functions-7.2.0.tgz",
+ "integrity": "sha1-XTzBHo1d3XUqpkyRSNDbbLef0ZA=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-block-scoping": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoping/download/@babel/plugin-transform-block-scoping-7.6.3.tgz",
+ "integrity": "sha1-boVOUfu6qENRsV1N2v40LzpdVCo=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "lodash": "^4.17.13"
+ }
+ },
+ "@babel/plugin-transform-classes": {
+ "version": "7.5.5",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-classes/download/@babel/plugin-transform-classes-7.5.5.tgz",
+ "integrity": "sha1-0JQpnZvWgKFKKg7a44MFrWD7Tek=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.0.0",
+ "@babel/helper-define-map": "^7.5.5",
+ "@babel/helper-function-name": "^7.1.0",
+ "@babel/helper-optimise-call-expression": "^7.0.0",
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-replace-supers": "^7.5.5",
+ "@babel/helper-split-export-declaration": "^7.4.4",
+ "globals": "^11.1.0"
+ }
+ },
+ "@babel/plugin-transform-computed-properties": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-computed-properties/download/@babel/plugin-transform-computed-properties-7.2.0.tgz",
+ "integrity": "sha1-g6ffamWIZbHI9kHVEMbzryICFto=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-destructuring": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-destructuring/download/@babel/plugin-transform-destructuring-7.6.0.tgz",
+ "integrity": "sha1-RLvgi1f0SACU1X2f+82W0wkHW6Y=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-dotall-regex": {
+ "version": "7.6.2",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-dotall-regex/download/@babel/plugin-transform-dotall-regex-7.6.2.tgz",
+ "integrity": "sha1-RKu5SLiPAZmmJwJOFQisr43Jsvk=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-regex": "^7.4.4",
+ "regexpu-core": "^4.6.0"
+ }
+ },
+ "@babel/plugin-transform-duplicate-keys": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-duplicate-keys/download/@babel/plugin-transform-duplicate-keys-7.5.0.tgz",
+ "integrity": "sha1-xdv1EGv4TN9pEiLAl0wSsd+TGFM=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-exponentiation-operator": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-exponentiation-operator/download/@babel/plugin-transform-exponentiation-operator-7.2.0.tgz",
+ "integrity": "sha1-pjhoKJ5bQAf3BU1GSRr1FDV2YAg=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-builder-binary-assignment-operator-visitor": "^7.1.0",
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-for-of": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-for-of/download/@babel/plugin-transform-for-of-7.4.4.tgz",
+ "integrity": "sha1-Amf8c14kyAi6FzhmxsTRRA/DxVY=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-function-name": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-function-name/download/@babel/plugin-transform-function-name-7.4.4.tgz",
+ "integrity": "sha1-4UNhFquwYQwiWQlISHVKxSMJIq0=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-function-name": "^7.1.0",
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-literals": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-literals/download/@babel/plugin-transform-literals-7.2.0.tgz",
+ "integrity": "sha1-aQNT6B+SZ9rU/Yz9d+r6hqulPqE=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-modules-amd": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-amd/download/@babel/plugin-transform-modules-amd-7.5.0.tgz",
+ "integrity": "sha1-7wBDXUbaCllhqnKKHS7P8GPk+5E=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-transforms": "^7.1.0",
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "babel-plugin-dynamic-import-node": "^2.3.0"
+ }
+ },
+ "@babel/plugin-transform-modules-commonjs": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-commonjs/download/@babel/plugin-transform-modules-commonjs-7.6.0.tgz",
+ "integrity": "sha1-Od/pV95EIERfH8+ItoouSqRRVIY=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-transforms": "^7.4.4",
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-simple-access": "^7.1.0",
+ "babel-plugin-dynamic-import-node": "^2.3.0"
+ }
+ },
+ "@babel/plugin-transform-modules-systemjs": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-systemjs/download/@babel/plugin-transform-modules-systemjs-7.5.0.tgz",
+ "integrity": "sha1-51JmoT75QgLbKgYgl3dW9R1S0kk=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-hoist-variables": "^7.4.4",
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "babel-plugin-dynamic-import-node": "^2.3.0"
+ }
+ },
+ "@babel/plugin-transform-modules-umd": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-umd/download/@babel/plugin-transform-modules-umd-7.2.0.tgz",
+ "integrity": "sha1-dnjOdRafCHe46yI1U4wHQmjdAa4=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-transforms": "^7.1.0",
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-named-capturing-groups-regex": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-named-capturing-groups-regex/download/@babel/plugin-transform-named-capturing-groups-regex-7.6.3.tgz",
+ "integrity": "sha1-qqbkCd1PsuULbiqR9+OjFJ284M8=",
+ "dev": true,
+ "requires": {
+ "regexpu-core": "^4.6.0"
+ }
+ },
+ "@babel/plugin-transform-new-target": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-new-target/download/@babel/plugin-transform-new-target-7.4.4.tgz",
+ "integrity": "sha1-GNEgQ4sMye6VpH8scryXaPvtYKU=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-object-super": {
+ "version": "7.5.5",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-object-super/download/@babel/plugin-transform-object-super-7.5.5.tgz",
+ "integrity": "sha1-xwAh34NAc8ZethO4Z5zEo4HRqfk=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-replace-supers": "^7.5.5"
+ }
+ },
+ "@babel/plugin-transform-parameters": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-parameters/download/@babel/plugin-transform-parameters-7.4.4.tgz",
+ "integrity": "sha1-dVbPA/MYvScZ/kySLS2Ai+VXHhY=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-call-delegate": "^7.4.4",
+ "@babel/helper-get-function-arity": "^7.0.0",
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-regenerator": {
+ "version": "7.4.5",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-regenerator/download/@babel/plugin-transform-regenerator-7.4.5.tgz",
+ "integrity": "sha1-Yp3IJRLFXO4BNB+ye9/LIQNUaA8=",
+ "dev": true,
+ "requires": {
+ "regenerator-transform": "^0.14.0"
+ }
+ },
+ "@babel/plugin-transform-runtime": {
+ "version": "7.6.2",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-runtime/download/@babel/plugin-transform-runtime-7.6.2.tgz",
+ "integrity": "sha1-Jmn2fB+uCujYv2luQmOtUsuYtvg=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-imports": "^7.0.0",
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "resolve": "^1.8.1",
+ "semver": "^5.5.1"
+ }
+ },
+ "@babel/plugin-transform-shorthand-properties": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-shorthand-properties/download/@babel/plugin-transform-shorthand-properties-7.2.0.tgz",
+ "integrity": "sha1-YzOu4vjW7n4oYVRXKYk0o7RhmPA=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-spread": {
+ "version": "7.6.2",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-spread/download/@babel/plugin-transform-spread-7.6.2.tgz",
+ "integrity": "sha1-/HfPeYsksQxG4bUbG4jCv2YbuN0=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-sticky-regex": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-sticky-regex/download/@babel/plugin-transform-sticky-regex-7.2.0.tgz",
+ "integrity": "sha1-oeRUtZlVYKnB4NU338FQYf0mh+E=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-regex": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-template-literals": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-template-literals/download/@babel/plugin-transform-template-literals-7.4.4.tgz",
+ "integrity": "sha1-nSj+p7vOY3+3YSoHUJidgyHUvLA=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.0.0",
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-typeof-symbol": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-typeof-symbol/download/@babel/plugin-transform-typeof-symbol-7.2.0.tgz",
+ "integrity": "sha1-EX0rzsL79ktLWdH5gZiUaC0p8rI=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-unicode-regex": {
+ "version": "7.6.2",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-unicode-regex/download/@babel/plugin-transform-unicode-regex-7.6.2.tgz",
+ "integrity": "sha1-tpKq2Iin6NixshS+a53APVAx9pg=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-regex": "^7.4.4",
+ "regexpu-core": "^4.6.0"
+ }
+ },
+ "@babel/preset-env": {
+ "version": "7.3.4",
+ "resolved": "https://registry.npm.taobao.org/@babel/preset-env/download/@babel/preset-env-7.3.4.tgz",
+ "integrity": "sha1-iHzzi20jyC8ZtRNSmL2xYAYuM+E=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-imports": "^7.0.0",
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-proposal-async-generator-functions": "^7.2.0",
+ "@babel/plugin-proposal-json-strings": "^7.2.0",
+ "@babel/plugin-proposal-object-rest-spread": "^7.3.4",
+ "@babel/plugin-proposal-optional-catch-binding": "^7.2.0",
+ "@babel/plugin-proposal-unicode-property-regex": "^7.2.0",
+ "@babel/plugin-syntax-async-generators": "^7.2.0",
+ "@babel/plugin-syntax-json-strings": "^7.2.0",
+ "@babel/plugin-syntax-object-rest-spread": "^7.2.0",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.2.0",
+ "@babel/plugin-transform-arrow-functions": "^7.2.0",
+ "@babel/plugin-transform-async-to-generator": "^7.3.4",
+ "@babel/plugin-transform-block-scoped-functions": "^7.2.0",
+ "@babel/plugin-transform-block-scoping": "^7.3.4",
+ "@babel/plugin-transform-classes": "^7.3.4",
+ "@babel/plugin-transform-computed-properties": "^7.2.0",
+ "@babel/plugin-transform-destructuring": "^7.2.0",
+ "@babel/plugin-transform-dotall-regex": "^7.2.0",
+ "@babel/plugin-transform-duplicate-keys": "^7.2.0",
+ "@babel/plugin-transform-exponentiation-operator": "^7.2.0",
+ "@babel/plugin-transform-for-of": "^7.2.0",
+ "@babel/plugin-transform-function-name": "^7.2.0",
+ "@babel/plugin-transform-literals": "^7.2.0",
+ "@babel/plugin-transform-modules-amd": "^7.2.0",
+ "@babel/plugin-transform-modules-commonjs": "^7.2.0",
+ "@babel/plugin-transform-modules-systemjs": "^7.3.4",
+ "@babel/plugin-transform-modules-umd": "^7.2.0",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.3.0",
+ "@babel/plugin-transform-new-target": "^7.0.0",
+ "@babel/plugin-transform-object-super": "^7.2.0",
+ "@babel/plugin-transform-parameters": "^7.2.0",
+ "@babel/plugin-transform-regenerator": "^7.3.4",
+ "@babel/plugin-transform-shorthand-properties": "^7.2.0",
+ "@babel/plugin-transform-spread": "^7.2.0",
+ "@babel/plugin-transform-sticky-regex": "^7.2.0",
+ "@babel/plugin-transform-template-literals": "^7.2.0",
+ "@babel/plugin-transform-typeof-symbol": "^7.2.0",
+ "@babel/plugin-transform-unicode-regex": "^7.2.0",
+ "browserslist": "^4.3.4",
+ "invariant": "^2.2.2",
+ "js-levenshtein": "^1.1.3",
+ "semver": "^5.3.0"
+ }
+ },
+ "@babel/runtime": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npm.taobao.org/@babel/runtime/download/@babel/runtime-7.6.3.tgz",
+ "integrity": "sha1-k1Eix0xz0iQMr9Mt21/Cps01zx8=",
+ "dev": true,
+ "requires": {
+ "regenerator-runtime": "^0.13.2"
+ },
+ "dependencies": {
+ "regenerator-runtime": {
+ "version": "0.13.3",
+ "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.13.3.tgz",
+ "integrity": "sha1-fPanfY9cb2Drc8X8GVWyzrAea/U=",
+ "dev": true
+ }
+ }
+ },
+ "@babel/runtime-corejs2": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npm.taobao.org/@babel/runtime-corejs2/download/@babel/runtime-corejs2-7.6.3.tgz",
+ "integrity": "sha1-3j9Eaz+2iLmMvSIEdNGnytkJvLg=",
+ "dev": true,
+ "requires": {
+ "core-js": "^2.6.5",
+ "regenerator-runtime": "^0.13.2"
+ },
+ "dependencies": {
+ "regenerator-runtime": {
+ "version": "0.13.3",
+ "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.13.3.tgz",
+ "integrity": "sha1-fPanfY9cb2Drc8X8GVWyzrAea/U=",
+ "dev": true
+ }
+ }
+ },
+ "@babel/template": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.6.0.tgz",
+ "integrity": "sha1-fwFZx/UBIjDa1kzKQuyb21yVNuY=",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "@babel/parser": "^7.6.0",
+ "@babel/types": "^7.6.0"
+ }
+ },
+ "@babel/traverse": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.6.3.tgz",
+ "integrity": "sha1-ZtfboUawhnA8D7EN1Yi3NkzsR/k=",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.5.5",
+ "@babel/generator": "^7.6.3",
+ "@babel/helper-function-name": "^7.1.0",
+ "@babel/helper-split-export-declaration": "^7.4.4",
+ "@babel/parser": "^7.6.3",
+ "@babel/types": "^7.6.3",
+ "debug": "^4.1.0",
+ "globals": "^11.1.0",
+ "lodash": "^4.17.13"
+ }
+ },
+ "@babel/types": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.6.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.6.3.tgz",
+ "integrity": "sha1-PwfZb4VPmOL71FxksMuULRHougk=",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2",
+ "lodash": "^4.17.13",
+ "to-fast-properties": "^2.0.0"
+ }
+ },
+ "@hapi/address": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npm.taobao.org/@hapi/address/download/@hapi/address-2.1.2.tgz",
+ "integrity": "sha1-HHlM1tvyNU0ese8Q4DA/Vz4cciI=",
+ "dev": true
+ },
+ "@hapi/bourne": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npm.taobao.org/@hapi/bourne/download/@hapi/bourne-1.3.2.tgz",
+ "integrity": "sha1-CnCVreoGckPOMoPhtWuKj0U7JCo=",
+ "dev": true
+ },
+ "@hapi/hoek": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npm.taobao.org/@hapi/hoek/download/@hapi/hoek-8.3.0.tgz?cache=0&sync_timestamp=1570245875776&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fhoek%2Fdownload%2F%40hapi%2Fhoek-8.3.0.tgz",
+ "integrity": "sha1-K52xzQDziRAFx3s6jWCLiKbQqk0=",
+ "dev": true
+ },
+ "@hapi/joi": {
+ "version": "15.1.1",
+ "resolved": "https://registry.npm.taobao.org/@hapi/joi/download/@hapi/joi-15.1.1.tgz",
+ "integrity": "sha1-xnW4pxKW8Cgz+NbSQ7NMV7jOGdc=",
+ "dev": true,
+ "requires": {
+ "@hapi/address": "2.x.x",
+ "@hapi/bourne": "1.x.x",
+ "@hapi/hoek": "8.x.x",
+ "@hapi/topo": "3.x.x"
+ }
+ },
+ "@hapi/topo": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npm.taobao.org/@hapi/topo/download/@hapi/topo-3.1.5.tgz?cache=0&sync_timestamp=1570335484252&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Ftopo%2Fdownload%2F%40hapi%2Ftopo-3.1.5.tgz",
+ "integrity": "sha1-O66hfkVlMO2taadcP8fN6X3W0zE=",
+ "dev": true,
+ "requires": {
+ "@hapi/hoek": "8.x.x"
+ }
+ },
+ "@intervolga/optimize-cssnano-plugin": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npm.taobao.org/@intervolga/optimize-cssnano-plugin/download/@intervolga/optimize-cssnano-plugin-1.0.6.tgz",
+ "integrity": "sha1-vnx4RhKLiPapsdEmGgrQbrXA/fg=",
+ "dev": true,
+ "requires": {
+ "cssnano": "^4.0.0",
+ "cssnano-preset-default": "^4.0.0",
+ "postcss": "^7.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.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
+ },
+ "@soda/friendly-errors-webpack-plugin": {
+ "version": "1.7.1",
+ "resolved": "https://registry.npm.taobao.org/@soda/friendly-errors-webpack-plugin/download/@soda/friendly-errors-webpack-plugin-1.7.1.tgz",
+ "integrity": "sha1-cG9kvLSouWQrSK46zkRMcDNNYV0=",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "error-stack-parser": "^2.0.0",
+ "string-width": "^2.0.0"
+ },
+ "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=1566430562325&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?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-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"
+ }
+ },
+ "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&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "@types/d3-timer": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npm.taobao.org/@types/d3-timer/download/@types/d3-timer-1.0.9.tgz",
+ "integrity": "sha1-rtG94M8Ykg0z9dRIOdc945NjP9M="
+ },
+ "@types/events": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/@types/events/download/@types/events-3.0.0.tgz?cache=0&sync_timestamp=1567532284800&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fevents%2Fdownload%2F%40types%2Fevents-3.0.0.tgz",
+ "integrity": "sha1-KGLz9Yqaf3w+eNefEw3U1xwlwqc=",
+ "dev": true
+ },
+ "@types/glob": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npm.taobao.org/@types/glob/download/@types/glob-7.1.1.tgz?cache=0&sync_timestamp=1567532885668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fglob%2Fdownload%2F%40types%2Fglob-7.1.1.tgz",
+ "integrity": "sha1-qlmhxuP7xCHgfM0xqUTDDrpSFXU=",
+ "dev": true,
+ "requires": {
+ "@types/events": "*",
+ "@types/minimatch": "*",
+ "@types/node": "*"
+ }
+ },
+ "@types/minimatch": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npm.taobao.org/@types/minimatch/download/@types/minimatch-3.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fminimatch%2Fdownload%2F%40types%2Fminimatch-3.0.3.tgz",
+ "integrity": "sha1-PcoOPzOyAPx9ETnAzZbBJoyt/Z0=",
+ "dev": true
+ },
+ "@types/node": {
+ "version": "12.7.12",
+ "resolved": "https://registry.npm.taobao.org/@types/node/download/@types/node-12.7.12.tgz",
+ "integrity": "sha1-fGxXHMLz86xKWaXyvUj1vbyGU8w=",
+ "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",
+ "integrity": "sha1-5IbQ2XOW15vu3QpuM/RTT/a0lz4=",
+ "dev": true
+ },
+ "@types/q": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npm.taobao.org/@types/q/download/@types/q-1.5.2.tgz?cache=0&sync_timestamp=1567534086032&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fq%2Fdownload%2F%40types%2Fq-1.5.2.tgz",
+ "integrity": "sha1-aQoUdbhPKohP0HzXl8APXzE1bqg=",
+ "dev": true
+ },
+ "@vue/babel-helper-vue-jsx-merge-props": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/@vue/babel-helper-vue-jsx-merge-props/download/@vue/babel-helper-vue-jsx-merge-props-1.0.0.tgz",
+ "integrity": "sha1-BI/leZWNpAj7eosqPsBQtQpmEEA=",
+ "dev": true
+ },
+ "@vue/babel-plugin-transform-vue-jsx": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/@vue/babel-plugin-transform-vue-jsx/download/@vue/babel-plugin-transform-vue-jsx-1.0.0.tgz",
+ "integrity": "sha1-68vznDEslBFMjE9AfuT2yXqkVDI=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-imports": "^7.0.0",
+ "@babel/plugin-syntax-jsx": "^7.2.0",
+ "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0",
+ "html-tags": "^2.0.0",
+ "lodash.kebabcase": "^4.1.1",
+ "svg-tags": "^1.0.0"
+ }
+ },
+ "@vue/babel-preset-app": {
+ "version": "3.12.0",
+ "resolved": "https://registry.npm.taobao.org/@vue/babel-preset-app/download/@vue/babel-preset-app-3.12.0.tgz",
+ "integrity": "sha1-dsye4sNXJc5nPHgyG5G7YCEMHHU=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-imports": "^7.0.0",
+ "@babel/plugin-proposal-class-properties": "^7.0.0",
+ "@babel/plugin-proposal-decorators": "^7.1.0",
+ "@babel/plugin-syntax-dynamic-import": "^7.0.0",
+ "@babel/plugin-syntax-jsx": "^7.0.0",
+ "@babel/plugin-transform-runtime": "^7.4.0",
+ "@babel/preset-env": "^7.0.0 < 7.4.0",
+ "@babel/runtime": "^7.0.0",
+ "@babel/runtime-corejs2": "^7.2.0",
+ "@vue/babel-preset-jsx": "^1.0.0",
+ "babel-plugin-dynamic-import-node": "^2.2.0",
+ "babel-plugin-module-resolver": "3.2.0",
+ "core-js": "^2.6.5"
+ }
+ },
+ "@vue/babel-preset-jsx": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npm.taobao.org/@vue/babel-preset-jsx/download/@vue/babel-preset-jsx-1.1.1.tgz?cache=0&sync_timestamp=1570771266201&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-preset-jsx%2Fdownload%2F%40vue%2Fbabel-preset-jsx-1.1.1.tgz",
+ "integrity": "sha1-OnRkLKDs6hCq4TZJ31/3D50kpvU=",
+ "dev": true,
+ "requires": {
+ "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0",
+ "@vue/babel-plugin-transform-vue-jsx": "^1.0.0",
+ "@vue/babel-sugar-functional-vue": "^1.0.0",
+ "@vue/babel-sugar-inject-h": "^1.0.0",
+ "@vue/babel-sugar-v-model": "^1.1.1",
+ "@vue/babel-sugar-v-on": "^1.1.0"
+ }
+ },
+ "@vue/babel-sugar-functional-vue": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-functional-vue/download/@vue/babel-sugar-functional-vue-1.0.0.tgz",
+ "integrity": "sha1-F+LEyie3SyRNo7kjJA7JHRAEjLM=",
+ "dev": true,
+ "requires": {
+ "@babel/plugin-syntax-jsx": "^7.2.0"
+ }
+ },
+ "@vue/babel-sugar-inject-h": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-inject-h/download/@vue/babel-sugar-inject-h-1.0.0.tgz",
+ "integrity": "sha1-5e+2xbW3mI3AODGvbRM797zeY0c=",
+ "dev": true,
+ "requires": {
+ "@babel/plugin-syntax-jsx": "^7.2.0"
+ }
+ },
+ "@vue/babel-sugar-v-model": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-v-model/download/@vue/babel-sugar-v-model-1.1.1.tgz",
+ "integrity": "sha1-oPB1D87iB2mAWiAXgpnuvUur8lo=",
+ "dev": true,
+ "requires": {
+ "@babel/plugin-syntax-jsx": "^7.2.0",
+ "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0",
+ "@vue/babel-plugin-transform-vue-jsx": "^1.0.0",
+ "camelcase": "^5.0.0",
+ "html-tags": "^2.0.0",
+ "svg-tags": "^1.0.0"
+ }
+ },
+ "@vue/babel-sugar-v-on": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-v-on/download/@vue/babel-sugar-v-on-1.1.0.tgz",
+ "integrity": "sha1-Hys17uq7h+r4klkx9NNP2OZASkU=",
+ "dev": true,
+ "requires": {
+ "@babel/plugin-syntax-jsx": "^7.2.0",
+ "@vue/babel-plugin-transform-vue-jsx": "^1.0.0",
+ "camelcase": "^5.0.0"
+ }
+ },
+ "@vue/cli-overlay": {
+ "version": "3.12.0",
+ "resolved": "https://registry.npm.taobao.org/@vue/cli-overlay/download/@vue/cli-overlay-3.12.0.tgz",
+ "integrity": "sha1-62r+k7zEJIirmd2AaS7zr7sJ73c=",
+ "dev": true
+ },
+ "@vue/cli-plugin-babel": {
+ "version": "3.12.0",
+ "resolved": "https://registry.npm.taobao.org/@vue/cli-plugin-babel/download/@vue/cli-plugin-babel-3.12.0.tgz",
+ "integrity": "sha1-Kozj1aAwvFJWw/shKwzzL/HejqU=",
+ "dev": true,
+ "requires": {
+ "@babel/core": "^7.0.0",
+ "@vue/babel-preset-app": "^3.12.0",
+ "@vue/cli-shared-utils": "^3.12.0",
+ "babel-loader": "^8.0.5",
+ "webpack": "^4.0.0"
+ }
+ },
+ "@vue/cli-plugin-eslint": {
+ "version": "3.12.0",
+ "resolved": "https://registry.npm.taobao.org/@vue/cli-plugin-eslint/download/@vue/cli-plugin-eslint-3.12.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-plugin-eslint%2Fdownload%2F%40vue%2Fcli-plugin-eslint-3.12.0.tgz",
+ "integrity": "sha1-8CmQtpO9H1ISfxPOFKHgbYrYQWQ=",
+ "dev": true,
+ "requires": {
+ "@vue/cli-shared-utils": "^3.12.0",
+ "babel-eslint": "^10.0.1",
+ "eslint": "^4.19.1",
+ "eslint-loader": "^2.1.2",
+ "eslint-plugin-vue": "^4.7.1",
+ "globby": "^9.2.0",
+ "webpack": "^4.0.0",
+ "yorkie": "^2.0.0"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "5.5.2",
+ "resolved": "https://registry.npm.taobao.org/ajv/download/ajv-5.5.2.tgz",
+ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "co": "^4.6.0",
+ "fast-deep-equal": "^1.0.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.3.0"
+ }
+ },
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true,
+ "optional": true
+ },
+ "cross-spawn": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-5.1.0.tgz?cache=0&sync_timestamp=1570439926300&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-5.1.0.tgz",
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "lru-cache": "^4.0.1",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ }
+ },
+ "debug": {
+ "version": "3.2.6",
+ "resolved": "http://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz",
+ "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "eslint": {
+ "version": "4.19.1",
+ "resolved": "https://registry.npm.taobao.org/eslint/download/eslint-4.19.1.tgz",
+ "integrity": "sha1-MtHWU+HZBAiFS/spbwdux+GGowA=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ajv": "^5.3.0",
+ "babel-code-frame": "^6.22.0",
+ "chalk": "^2.1.0",
+ "concat-stream": "^1.6.0",
+ "cross-spawn": "^5.1.0",
+ "debug": "^3.1.0",
+ "doctrine": "^2.1.0",
+ "eslint-scope": "^3.7.1",
+ "eslint-visitor-keys": "^1.0.0",
+ "espree": "^3.5.4",
+ "esquery": "^1.0.0",
+ "esutils": "^2.0.2",
+ "file-entry-cache": "^2.0.0",
+ "functional-red-black-tree": "^1.0.1",
+ "glob": "^7.1.2",
+ "globals": "^11.0.1",
+ "ignore": "^3.3.3",
+ "imurmurhash": "^0.1.4",
+ "inquirer": "^3.0.6",
+ "is-resolvable": "^1.0.0",
+ "js-yaml": "^3.9.1",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.3.0",
+ "lodash": "^4.17.4",
+ "minimatch": "^3.0.2",
+ "mkdirp": "^0.5.1",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.8.2",
+ "path-is-inside": "^1.0.2",
+ "pluralize": "^7.0.0",
+ "progress": "^2.0.0",
+ "regexpp": "^1.0.1",
+ "require-uncached": "^1.0.3",
+ "semver": "^5.3.0",
+ "strip-ansi": "^4.0.0",
+ "strip-json-comments": "~2.0.1",
+ "table": "4.0.2",
+ "text-table": "~0.2.0"
+ }
+ },
+ "eslint-plugin-vue": {
+ "version": "4.7.1",
+ "resolved": "https://registry.npm.taobao.org/eslint-plugin-vue/download/eslint-plugin-vue-4.7.1.tgz",
+ "integrity": "sha1-yCm5/GJYLBiXtaC5Sv1E7MpRHmM=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "vue-eslint-parser": "^2.0.3"
+ }
+ },
+ "eslint-scope": {
+ "version": "3.7.3",
+ "resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-3.7.3.tgz",
+ "integrity": "sha1-u1ByANPRf2AkdjYWC0gmKEsQhTU=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "esrecurse": "^4.1.0",
+ "estraverse": "^4.1.1"
+ }
+ },
+ "fast-deep-equal": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-1.1.0.tgz",
+ "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=",
+ "dev": true,
+ "optional": true
+ },
+ "json-schema-traverse": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.3.1.tgz",
+ "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
+ "dev": true,
+ "optional": true
+ },
+ "lru-cache": {
+ "version": "4.1.5",
+ "resolved": "http://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz",
+ "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "pseudomap": "^1.0.2",
+ "yallist": "^2.1.2"
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ },
+ "yallist": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz",
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "@vue/cli-service": {
+ "version": "3.12.0",
+ "resolved": "https://registry.npm.taobao.org/@vue/cli-service/download/@vue/cli-service-3.12.0.tgz",
+ "integrity": "sha1-1FeMObcIR5PyuKU3W010YpWqNvs=",
+ "dev": true,
+ "requires": {
+ "@intervolga/optimize-cssnano-plugin": "^1.0.5",
+ "@soda/friendly-errors-webpack-plugin": "^1.7.1",
+ "@vue/cli-overlay": "^3.12.0",
+ "@vue/cli-shared-utils": "^3.12.0",
+ "@vue/component-compiler-utils": "^3.0.0",
+ "@vue/preload-webpack-plugin": "^1.1.0",
+ "@vue/web-component-wrapper": "^1.2.0",
+ "acorn": "^6.1.1",
+ "acorn-walk": "^6.1.1",
+ "address": "^1.0.3",
+ "autoprefixer": "^9.5.1",
+ "browserslist": "^4.5.4",
+ "cache-loader": "^2.0.1",
+ "case-sensitive-paths-webpack-plugin": "^2.2.0",
+ "chalk": "^2.4.2",
+ "cli-highlight": "^2.1.0",
+ "clipboardy": "^2.0.0",
+ "cliui": "^5.0.0",
+ "copy-webpack-plugin": "^4.6.0",
+ "css-loader": "^1.0.1",
+ "cssnano": "^4.1.10",
+ "current-script-polyfill": "^1.0.0",
+ "debug": "^4.1.1",
+ "default-gateway": "^5.0.2",
+ "dotenv": "^7.0.0",
+ "dotenv-expand": "^5.1.0",
+ "escape-string-regexp": "^1.0.5",
+ "file-loader": "^3.0.1",
+ "fs-extra": "^7.0.1",
+ "globby": "^9.2.0",
+ "hash-sum": "^1.0.2",
+ "html-webpack-plugin": "^3.2.0",
+ "launch-editor-middleware": "^2.2.1",
+ "lodash.defaultsdeep": "^4.6.1",
+ "lodash.mapvalues": "^4.6.0",
+ "lodash.transform": "^4.6.0",
+ "mini-css-extract-plugin": "^0.8.0",
+ "minimist": "^1.2.0",
+ "ora": "^3.4.0",
+ "portfinder": "^1.0.20",
+ "postcss-loader": "^3.0.0",
+ "read-pkg": "^5.0.0",
+ "semver": "^6.0.0",
+ "slash": "^2.0.0",
+ "source-map-url": "^0.4.0",
+ "ssri": "^6.0.1",
+ "string.prototype.padend": "^3.0.0",
+ "terser-webpack-plugin": "^1.2.3",
+ "thread-loader": "^2.1.2",
+ "url-loader": "^1.1.2",
+ "vue-loader": "^15.7.0",
+ "webpack": "^4.0.0",
+ "webpack-bundle-analyzer": "^3.3.0",
+ "webpack-chain": "^4.11.0",
+ "webpack-dev-server": "^3.4.1",
+ "webpack-merge": "^4.2.1"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1565627380363&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz",
+ "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=",
+ "dev": true
+ }
+ }
+ },
+ "@vue/cli-shared-utils": {
+ "version": "3.12.0",
+ "resolved": "https://registry.npm.taobao.org/@vue/cli-shared-utils/download/@vue/cli-shared-utils-3.12.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-shared-utils%2Fdownload%2F%40vue%2Fcli-shared-utils-3.12.0.tgz",
+ "integrity": "sha1-SPzXhhKc8CJ4uckfLDSRGZ93ckg=",
+ "dev": true,
+ "requires": {
+ "@hapi/joi": "^15.0.1",
+ "chalk": "^2.4.1",
+ "execa": "^1.0.0",
+ "launch-editor": "^2.2.1",
+ "lru-cache": "^5.1.1",
+ "node-ipc": "^9.1.1",
+ "open": "^6.3.0",
+ "ora": "^3.4.0",
+ "request": "^2.87.0",
+ "request-promise-native": "^1.0.7",
+ "semver": "^6.0.0",
+ "string.prototype.padstart": "^3.0.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1565627380363&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz",
+ "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=",
+ "dev": true
+ }
+ }
+ },
+ "@vue/component-compiler-utils": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/@vue/component-compiler-utils/download/@vue/component-compiler-utils-3.0.0.tgz",
+ "integrity": "sha1-0W+ia4NsBt9bqutF89gK/EfjVjQ=",
+ "dev": true,
+ "requires": {
+ "consolidate": "^0.15.1",
+ "hash-sum": "^1.0.2",
+ "lru-cache": "^4.1.2",
+ "merge-source-map": "^1.1.0",
+ "postcss": "^7.0.14",
+ "postcss-selector-parser": "^5.0.0",
+ "prettier": "1.16.3",
+ "source-map": "~0.6.1",
+ "vue-template-es2015-compiler": "^1.9.0"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "4.1.5",
+ "resolved": "http://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz",
+ "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=",
+ "dev": true,
+ "requires": {
+ "pseudomap": "^1.0.2",
+ "yallist": "^2.1.2"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ },
+ "yallist": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz",
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
+ "dev": true
+ }
+ }
+ },
+ "@vue/eslint-config-prettier": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npm.taobao.org/@vue/eslint-config-prettier/download/@vue/eslint-config-prettier-4.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Feslint-config-prettier%2Fdownload%2F%40vue%2Feslint-config-prettier-4.0.1.tgz",
+ "integrity": "sha1-oDbQ0hk8XINlQrNaOnw1xOHGjJc=",
+ "dev": true,
+ "requires": {
+ "eslint-config-prettier": "^3.3.0",
+ "eslint-plugin-prettier": "^3.0.0",
+ "prettier": "^1.15.2"
+ }
+ },
+ "@vue/preload-webpack-plugin": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npm.taobao.org/@vue/preload-webpack-plugin/download/@vue/preload-webpack-plugin-1.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fpreload-webpack-plugin%2Fdownload%2F%40vue%2Fpreload-webpack-plugin-1.1.1.tgz",
+ "integrity": "sha1-GHI1MNME9EMCHaIpLW7JUCgmEEo=",
+ "dev": true
+ },
+ "@vue/web-component-wrapper": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npm.taobao.org/@vue/web-component-wrapper/download/@vue/web-component-wrapper-1.2.0.tgz",
+ "integrity": "sha1-uw5G8VhafiibTuYGfcxaauYvHdE=",
+ "dev": true
+ },
+ "@webassemblyjs/ast": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npm.taobao.org/@webassemblyjs/ast/download/@webassemblyjs/ast-1.8.5.tgz",
+ "integrity": "sha1-UbHF/mV2o0lTv0slPfnw1JDZ41k=",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/helper-module-context": "1.8.5",
+ "@webassemblyjs/helper-wasm-bytecode": "1.8.5",
+ "@webassemblyjs/wast-parser": "1.8.5"
+ }
+ },
+ "@webassemblyjs/floating-point-hex-parser": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npm.taobao.org/@webassemblyjs/floating-point-hex-parser/download/@webassemblyjs/floating-point-hex-parser-1.8.5.tgz",
+ "integrity": "sha1-G6kmopI2E+3OSW/VsC6M6KX0lyE=",
+ "dev": true
+ },
+ "@webassemblyjs/helper-api-error": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-api-error/download/@webassemblyjs/helper-api-error-1.8.5.tgz",
+ "integrity": "sha1-xJ2tIvZFInxe22EL25aX8aq3Ifc=",
+ "dev": true
+ },
+ "@webassemblyjs/helper-buffer": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-buffer/download/@webassemblyjs/helper-buffer-1.8.5.tgz",
+ "integrity": "sha1-/qk+Qphj3V5DOFVfQikjhaZT8gQ=",
+ "dev": true
+ },
+ "@webassemblyjs/helper-code-frame": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-code-frame/download/@webassemblyjs/helper-code-frame-1.8.5.tgz",
+ "integrity": "sha1-mnQP9I4/qjAisd/1RCPfmqKTwl4=",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/wast-printer": "1.8.5"
+ }
+ },
+ "@webassemblyjs/helper-fsm": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-fsm/download/@webassemblyjs/helper-fsm-1.8.5.tgz",
+ "integrity": "sha1-ugt9Oz9+RzPaYFnJMyJ12GBwJFI=",
+ "dev": true
+ },
+ "@webassemblyjs/helper-module-context": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-module-context/download/@webassemblyjs/helper-module-context-1.8.5.tgz",
+ "integrity": "sha1-3vS5knsBAdyMu9jR7bW3ucguskU=",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.8.5",
+ "mamacro": "^0.0.3"
+ }
+ },
+ "@webassemblyjs/helper-wasm-bytecode": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-bytecode/download/@webassemblyjs/helper-wasm-bytecode-1.8.5.tgz",
+ "integrity": "sha1-U3p1Dt31weky83RCBlUckcG5PmE=",
+ "dev": true
+ },
+ "@webassemblyjs/helper-wasm-section": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-section/download/@webassemblyjs/helper-wasm-section-1.8.5.tgz",
+ "integrity": "sha1-dMpqa8vhnlCjtrRihH5pUD5r/L8=",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.8.5",
+ "@webassemblyjs/helper-buffer": "1.8.5",
+ "@webassemblyjs/helper-wasm-bytecode": "1.8.5",
+ "@webassemblyjs/wasm-gen": "1.8.5"
+ }
+ },
+ "@webassemblyjs/ieee754": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npm.taobao.org/@webassemblyjs/ieee754/download/@webassemblyjs/ieee754-1.8.5.tgz",
+ "integrity": "sha1-cSMp2+8kDza/V70ve4+5v0FUQh4=",
+ "dev": true,
+ "requires": {
+ "@xtuc/ieee754": "^1.2.0"
+ }
+ },
+ "@webassemblyjs/leb128": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npm.taobao.org/@webassemblyjs/leb128/download/@webassemblyjs/leb128-1.8.5.tgz",
+ "integrity": "sha1-BE7es06mefPgTNT9mCTV41dnrhA=",
+ "dev": true,
+ "requires": {
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "@webassemblyjs/utf8": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npm.taobao.org/@webassemblyjs/utf8/download/@webassemblyjs/utf8-1.8.5.tgz",
+ "integrity": "sha1-qL87XY/+mGx8Hjc8y9wqCRXwztw=",
+ "dev": true
+ },
+ "@webassemblyjs/wasm-edit": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-edit/download/@webassemblyjs/wasm-edit-1.8.5.tgz",
+ "integrity": "sha1-li2hKqWswcExyBxCMpkcgs5W4Bo=",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.8.5",
+ "@webassemblyjs/helper-buffer": "1.8.5",
+ "@webassemblyjs/helper-wasm-bytecode": "1.8.5",
+ "@webassemblyjs/helper-wasm-section": "1.8.5",
+ "@webassemblyjs/wasm-gen": "1.8.5",
+ "@webassemblyjs/wasm-opt": "1.8.5",
+ "@webassemblyjs/wasm-parser": "1.8.5",
+ "@webassemblyjs/wast-printer": "1.8.5"
+ }
+ },
+ "@webassemblyjs/wasm-gen": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-gen/download/@webassemblyjs/wasm-gen-1.8.5.tgz",
+ "integrity": "sha1-VIQHZsLBAC62TtGr5yCt7XFPmLw=",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.8.5",
+ "@webassemblyjs/helper-wasm-bytecode": "1.8.5",
+ "@webassemblyjs/ieee754": "1.8.5",
+ "@webassemblyjs/leb128": "1.8.5",
+ "@webassemblyjs/utf8": "1.8.5"
+ }
+ },
+ "@webassemblyjs/wasm-opt": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-opt/download/@webassemblyjs/wasm-opt-1.8.5.tgz",
+ "integrity": "sha1-sk2fa6UDlK8TSfUQr6j/y4pj0mQ=",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.8.5",
+ "@webassemblyjs/helper-buffer": "1.8.5",
+ "@webassemblyjs/wasm-gen": "1.8.5",
+ "@webassemblyjs/wasm-parser": "1.8.5"
+ }
+ },
+ "@webassemblyjs/wasm-parser": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-parser/download/@webassemblyjs/wasm-parser-1.8.5.tgz",
+ "integrity": "sha1-IVdvDsiLkUJzV7hTY4NmjvfGa40=",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.8.5",
+ "@webassemblyjs/helper-api-error": "1.8.5",
+ "@webassemblyjs/helper-wasm-bytecode": "1.8.5",
+ "@webassemblyjs/ieee754": "1.8.5",
+ "@webassemblyjs/leb128": "1.8.5",
+ "@webassemblyjs/utf8": "1.8.5"
+ }
+ },
+ "@webassemblyjs/wast-parser": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wast-parser/download/@webassemblyjs/wast-parser-1.8.5.tgz",
+ "integrity": "sha1-4Q7s1ULQ5705T2gnxJ899tTu+4w=",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.8.5",
+ "@webassemblyjs/floating-point-hex-parser": "1.8.5",
+ "@webassemblyjs/helper-api-error": "1.8.5",
+ "@webassemblyjs/helper-code-frame": "1.8.5",
+ "@webassemblyjs/helper-fsm": "1.8.5",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "@webassemblyjs/wast-printer": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wast-printer/download/@webassemblyjs/wast-printer-1.8.5.tgz",
+ "integrity": "sha1-EUu8SB/RDKDiOzVg+oEnSLC65bw=",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.8.5",
+ "@webassemblyjs/wast-parser": "1.8.5",
+ "@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
+ },
+ "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": "6.3.0",
+ "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-6.3.0.tgz",
+ "integrity": "sha1-AIdQkRn/pPwKAEHR6TpBfmjLhW4=",
+ "dev": true
+ },
+ "acorn-jsx": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npm.taobao.org/acorn-jsx/download/acorn-jsx-3.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn-jsx%2Fdownload%2Facorn-jsx-3.0.1.tgz",
+ "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "acorn": "^3.0.4"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-3.3.0.tgz",
+ "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "acorn-walk": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npm.taobao.org/acorn-walk/download/acorn-walk-6.2.0.tgz",
+ "integrity": "sha1-Ejy487hMIXHx9/slJhWxx4prGow=",
+ "dev": true
+ },
+ "address": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npm.taobao.org/address/download/address-1.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faddress%2Fdownload%2Faddress-1.1.2.tgz",
+ "integrity": "sha1-vxEWycdYxRt6kz0pa3LCIe2UKLY=",
+ "dev": true
+ },
+ "ajv": {
+ "version": "6.10.2",
+ "resolved": "https://registry.npm.taobao.org/ajv/download/ajv-6.10.2.tgz",
+ "integrity": "sha1-086gTWsBeyiUrWkED+yLYj60vVI=",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^2.0.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.4.1",
+ "resolved": "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-3.4.1.tgz",
+ "integrity": "sha1-75FuJxxkrBIXH9g4TqrmsjRYVNo=",
+ "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
+ },
+ "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": "3.2.0",
+ "resolved": "https://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-3.2.0.tgz",
+ "integrity": "sha1-h4C5j/nb9WOBUtHx/lwde0RCl2s=",
+ "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=1566430562325&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"
+ }
+ },
+ "any-promise": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npm.taobao.org/any-promise/download/any-promise-1.3.0.tgz",
+ "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=",
+ "dev": true
+ },
+ "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"
+ },
+ "dependencies": {
+ "normalize-path": {
+ "version": "2.1.1",
+ "resolved": "http://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"
+ }
+ }
+ }
+ },
+ "aproba": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npm.taobao.org/aproba/download/aproba-1.2.0.tgz",
+ "integrity": "sha1-aALmJk79GMeQobDVF/DyYnvyyUo=",
+ "dev": true
+ },
+ "arch": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npm.taobao.org/arch/download/arch-2.1.1.tgz",
+ "integrity": "sha1-j1wnMao1owkpIhuwZA7tZRdeyE4=",
+ "dev": true
+ },
+ "argparse": {
+ "version": "1.0.10",
+ "resolved": "http://registry.npm.taobao.org/argparse/download/argparse-1.0.10.tgz",
+ "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=",
+ "dev": true,
+ "requires": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "arr-diff": {
+ "version": "4.0.0",
+ "resolved": "http://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": "http://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": "http://registry.npm.taobao.org/arr-union/download/arr-union-3.1.0.tgz",
+ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
+ "dev": true
+ },
+ "array-flatten": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npm.taobao.org/array-flatten/download/array-flatten-1.1.1.tgz",
+ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
+ "dev": true
+ },
+ "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": "http://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
+ "dev": true
+ },
+ "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": "4.10.1",
+ "resolved": "https://registry.npm.taobao.org/asn1.js/download/asn1.js-4.10.1.tgz",
+ "integrity": "sha1-ucK/WAXx5kqt7tbfOiv6+1pz9aA=",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "assert": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npm.taobao.org/assert/download/assert-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?cache=0&sync_timestamp=1560975547815&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-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": "http://registry.npm.taobao.org/assign-symbols/download/assign-symbols-1.0.0.tgz",
+ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
+ "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": "1.5.2",
+ "resolved": "https://registry.npm.taobao.org/async/download/async-1.5.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync%2Fdownload%2Fasync-1.5.2.tgz",
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
+ "dev": true
+ },
+ "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-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
+ },
+ "async-validator": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npm.taobao.org/async-validator/download/async-validator-1.8.5.tgz",
+ "integrity": "sha1-3D4I7B/Q3dtn5ghC8CwM0c7G1/A=",
+ "requires": {
+ "babel-runtime": "6.x"
+ }
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz",
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
+ "dev": true
+ },
+ "atob": {
+ "version": "2.1.2",
+ "resolved": "http://registry.npm.taobao.org/atob/download/atob-2.1.2.tgz",
+ "integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k=",
+ "dev": true
+ },
+ "autoprefixer": {
+ "version": "9.6.4",
+ "resolved": "https://registry.npm.taobao.org/autoprefixer/download/autoprefixer-9.6.4.tgz",
+ "integrity": "sha1-5kU75HrzFrKSPq6u2Hhg9SrUt+s=",
+ "dev": true,
+ "requires": {
+ "browserslist": "^4.7.0",
+ "caniuse-lite": "^1.0.30000998",
+ "chalk": "^2.4.2",
+ "normalize-range": "^0.1.2",
+ "num2fraction": "^1.2.2",
+ "postcss": "^7.0.18",
+ "postcss-value-parser": "^4.0.2"
+ },
+ "dependencies": {
+ "postcss-value-parser": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-4.0.2.tgz",
+ "integrity": "sha1-SCKCwJpCcG0fyaBptz9E7Ag5Hck=",
+ "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.8.0",
+ "resolved": "https://registry.npm.taobao.org/aws4/download/aws4-1.8.0.tgz",
+ "integrity": "sha1-8OAD2cqef1nHpQiUXXsu+aBKVC8=",
+ "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=1566430562325&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?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-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&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.0.3",
+ "resolved": "https://registry.npm.taobao.org/babel-eslint/download/babel-eslint-10.0.3.tgz",
+ "integrity": "sha1-gaLGab4PIF4ZRi/tJILTPkaHqIo=",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "@babel/parser": "^7.0.0",
+ "@babel/traverse": "^7.0.0",
+ "@babel/types": "^7.0.0",
+ "eslint-visitor-keys": "^1.0.0",
+ "resolve": "^1.12.0"
+ }
+ },
+ "babel-helper-vue-jsx-merge-props": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npm.taobao.org/babel-helper-vue-jsx-merge-props/download/babel-helper-vue-jsx-merge-props-2.0.3.tgz",
+ "integrity": "sha1-Iq69OzOQIyjlEyk6jkmSs4T58bY="
+ },
+ "babel-loader": {
+ "version": "8.0.6",
+ "resolved": "https://registry.npm.taobao.org/babel-loader/download/babel-loader-8.0.6.tgz",
+ "integrity": "sha1-4zvbbzYrA/S7FBoMIauHxQG3Dfs=",
+ "dev": true,
+ "requires": {
+ "find-cache-dir": "^2.0.0",
+ "loader-utils": "^1.0.2",
+ "mkdirp": "^0.5.1",
+ "pify": "^4.0.1"
+ }
+ },
+ "babel-plugin-dynamic-import-node": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npm.taobao.org/babel-plugin-dynamic-import-node/download/babel-plugin-dynamic-import-node-2.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-dynamic-import-node%2Fdownload%2Fbabel-plugin-dynamic-import-node-2.3.0.tgz",
+ "integrity": "sha1-8A9Qe9qjw+P/bn5emNkKesq5b38=",
+ "dev": true,
+ "requires": {
+ "object.assign": "^4.1.0"
+ }
+ },
+ "babel-plugin-module-resolver": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npm.taobao.org/babel-plugin-module-resolver/download/babel-plugin-module-resolver-3.2.0.tgz",
+ "integrity": "sha1-3fpeMB47mqEthSqZefGLN4gf9ac=",
+ "dev": true,
+ "requires": {
+ "find-babel-config": "^1.1.0",
+ "glob": "^7.1.2",
+ "pkg-up": "^2.0.0",
+ "reselect": "^3.0.1",
+ "resolve": "^1.4.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"
+ }
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "http://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+ "dev": true
+ },
+ "base": {
+ "version": "0.11.2",
+ "resolved": "http://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": "http://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": "http://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": "http://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": "http://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"
+ }
+ }
+ }
+ },
+ "base64-js": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npm.taobao.org/base64-js/download/base64-js-1.3.1.tgz",
+ "integrity": "sha1-WOzoy3XdB+ce0IxzarxfrE2/jfE=",
+ "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": "1.13.1",
+ "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz",
+ "integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=",
+ "dev": true
+ },
+ "bluebird": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npm.taobao.org/bluebird/download/bluebird-3.7.0.tgz?cache=0&sync_timestamp=1569957137990&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbluebird%2Fdownload%2Fbluebird-3.7.0.tgz",
+ "integrity": "sha1-VqaohuA/auV3z/7etST48kUCk88=",
+ "dev": true
+ },
+ "bn.js": {
+ "version": "4.11.8",
+ "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.8.tgz",
+ "integrity": "sha1-LN4J617jQfSEdGuwMJsyU7GxRC8=",
+ "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": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "http://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz",
+ "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-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"
+ },
+ "dependencies": {
+ "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
+ }
+ }
+ },
+ "boolbase": {
+ "version": "1.0.0",
+ "resolved": "http://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": "http://registry.npm.taobao.org/brace-expansion/download/brace-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": "http://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
+ },
+ "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.0.1",
+ "resolved": "https://registry.npm.taobao.org/browserify-rsa/download/browserify-rsa-4.0.1.tgz",
+ "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.1.0",
+ "randombytes": "^2.0.1"
+ }
+ },
+ "browserify-sign": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npm.taobao.org/browserify-sign/download/browserify-sign-4.0.4.tgz",
+ "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.1.1",
+ "browserify-rsa": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "create-hmac": "^1.1.2",
+ "elliptic": "^6.0.0",
+ "inherits": "^2.0.1",
+ "parse-asn1": "^5.0.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.7.0",
+ "resolved": "https://registry.npm.taobao.org/browserslist/download/browserslist-4.7.0.tgz",
+ "integrity": "sha1-nuiSJf/AfbA0CfL+5STcgidFihc=",
+ "dev": true,
+ "requires": {
+ "caniuse-lite": "^1.0.30000989",
+ "electron-to-chromium": "^1.3.247",
+ "node-releases": "^1.1.29"
+ }
+ },
+ "buffer": {
+ "version": "4.9.1",
+ "resolved": "https://registry.npm.taobao.org/buffer/download/buffer-4.9.1.tgz",
+ "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=",
+ "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
+ },
+ "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
+ },
+ "bytes": {
+ "version": "3.1.0",
+ "resolved": "http://registry.npm.taobao.org/bytes/download/bytes-3.1.0.tgz",
+ "integrity": "sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY=",
+ "dev": true
+ },
+ "cacache": {
+ "version": "12.0.3",
+ "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-12.0.3.tgz?cache=0&sync_timestamp=1569877543868&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-12.0.3.tgz",
+ "integrity": "sha1-vpmruk4b9d9GHNWiwQcfxDJXM5A=",
+ "dev": true,
+ "requires": {
+ "bluebird": "^3.5.5",
+ "chownr": "^1.1.1",
+ "figgy-pudding": "^3.5.1",
+ "glob": "^7.1.4",
+ "graceful-fs": "^4.1.15",
+ "infer-owner": "^1.0.3",
+ "lru-cache": "^5.1.1",
+ "mississippi": "^3.0.0",
+ "mkdirp": "^0.5.1",
+ "move-concurrently": "^1.0.1",
+ "promise-inflight": "^1.0.1",
+ "rimraf": "^2.6.3",
+ "ssri": "^6.0.1",
+ "unique-filename": "^1.1.1",
+ "y18n": "^4.0.0"
+ }
+ },
+ "cache-base": {
+ "version": "1.0.1",
+ "resolved": "http://registry.npm.taobao.org/cache-base/download/cache-base-1.0.1.tgz",
+ "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=",
+ "dev": true,
+ "requires": {
+ "collection-visit": "^1.0.0",
+ "component-emitter": "^1.2.1",
+ "get-value": "^2.0.6",
+ "has-value": "^1.0.0",
+ "isobject": "^3.0.1",
+ "set-value": "^2.0.0",
+ "to-object-path": "^0.3.0",
+ "union-value": "^1.0.0",
+ "unset-value": "^1.0.0"
+ }
+ },
+ "cache-loader": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/cache-loader/download/cache-loader-2.0.1.tgz",
+ "integrity": "sha1-V1j0GmLXwjlB48PHAW5vrrA6ywc=",
+ "dev": true,
+ "requires": {
+ "loader-utils": "^1.1.0",
+ "mkdirp": "^0.5.1",
+ "neo-async": "^2.6.0",
+ "normalize-path": "^3.0.0",
+ "schema-utils": "^1.0.0"
+ }
+ },
+ "call-me-maybe": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/call-me-maybe/download/call-me-maybe-1.0.1.tgz",
+ "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=",
+ "dev": true
+ },
+ "caller-callsite": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/caller-callsite/download/caller-callsite-2.0.0.tgz?cache=0&sync_timestamp=1562668933683&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaller-callsite%2Fdownload%2Fcaller-callsite-2.0.0.tgz",
+ "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=",
+ "dev": true,
+ "requires": {
+ "callsites": "^2.0.0"
+ },
+ "dependencies": {
+ "callsites": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/callsites/download/callsites-2.0.0.tgz",
+ "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=",
+ "dev": true
+ }
+ }
+ },
+ "caller-path": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npm.taobao.org/caller-path/download/caller-path-0.1.0.tgz",
+ "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "callsites": "^0.2.0"
+ }
+ },
+ "callsites": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npm.taobao.org/callsites/download/callsites-0.2.0.tgz",
+ "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=",
+ "dev": true,
+ "optional": true
+ },
+ "camel-case": {
+ "version": "3.0.0",
+ "resolved": "http://registry.npm.taobao.org/camel-case/download/camel-case-3.0.0.tgz",
+ "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=",
+ "dev": true,
+ "requires": {
+ "no-case": "^2.2.0",
+ "upper-case": "^1.1.1"
+ }
+ },
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz",
+ "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=",
+ "dev": true
+ },
+ "caniuse-api": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/caniuse-api/download/caniuse-api-3.0.0.tgz",
+ "integrity": "sha1-Xk2Q4idJYdRikZl99Znj7QCO5MA=",
+ "dev": true,
+ "requires": {
+ "browserslist": "^4.0.0",
+ "caniuse-lite": "^1.0.0",
+ "lodash.memoize": "^4.1.2",
+ "lodash.uniq": "^4.5.0"
+ }
+ },
+ "caniuse-lite": {
+ "version": "1.0.30000999",
+ "resolved": "https://registry.npm.taobao.org/caniuse-lite/download/caniuse-lite-1.0.30000999.tgz",
+ "integrity": "sha1-QnJTpprXvqSqjYNFaHuO7FHKDkM=",
+ "dev": true
+ },
+ "case-sensitive-paths-webpack-plugin": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npm.taobao.org/case-sensitive-paths-webpack-plugin/download/case-sensitive-paths-webpack-plugin-2.2.0.tgz",
+ "integrity": "sha1-M3HvY2XvnCX6S4HBas4OnH3FjD4=",
+ "dev": true
+ },
+ "caseless": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npm.taobao.org/caseless/download/caseless-0.12.0.tgz",
+ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-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"
+ }
+ },
+ "chardet": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npm.taobao.org/chardet/download/chardet-0.4.2.tgz",
+ "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=",
+ "dev": true,
+ "optional": true
+ },
+ "check-types": {
+ "version": "8.0.3",
+ "resolved": "https://registry.npm.taobao.org/check-types/download/check-types-8.0.3.tgz",
+ "integrity": "sha1-M1bMoZyIlUTy16le1JzlCKDs9VI=",
+ "dev": true
+ },
+ "chokidar": {
+ "version": "2.1.8",
+ "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.8.tgz",
+ "integrity": "sha1-gEs6e2qZNYw8XGHnHYco8EHP+Rc=",
+ "dev": true,
+ "requires": {
+ "anymatch": "^2.0.0",
+ "async-each": "^1.0.1",
+ "braces": "^2.3.2",
+ "fsevents": "^1.2.7",
+ "glob-parent": "^3.1.0",
+ "inherits": "^2.0.3",
+ "is-binary-path": "^1.0.0",
+ "is-glob": "^4.0.0",
+ "normalize-path": "^3.0.0",
+ "path-is-absolute": "^1.0.0",
+ "readdirp": "^2.2.1",
+ "upath": "^1.1.1"
+ }
+ },
+ "chownr": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npm.taobao.org/chownr/download/chownr-1.1.3.tgz",
+ "integrity": "sha1-Qtg31SOWiNVfMDADpQgjD6ZycUI=",
+ "dev": true
+ },
+ "chrome-trace-event": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npm.taobao.org/chrome-trace-event/download/chrome-trace-event-1.0.2.tgz",
+ "integrity": "sha1-I0CQ7pfH1K0aLEvq4nUF3v/GCKQ=",
+ "dev": true,
+ "requires": {
+ "tslib": "^1.9.0"
+ }
+ },
+ "ci-info": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npm.taobao.org/ci-info/download/ci-info-1.6.0.tgz",
+ "integrity": "sha1-LKINu5zrMtRSSmgzAzE/AwSx5Jc=",
+ "dev": true
+ },
+ "cipher-base": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npm.taobao.org/cipher-base/download/cipher-base-1.0.4.tgz",
+ "integrity": "sha1-h2Dk7MJy9MNjUy+SbYdKriwTl94=",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "circular-json": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npm.taobao.org/circular-json/download/circular-json-0.3.3.tgz",
+ "integrity": "sha1-gVyZ6oT2gJUp0vRXkb34JxE1LWY=",
+ "dev": true,
+ "optional": true
+ },
+ "class-utils": {
+ "version": "0.3.6",
+ "resolved": "http://registry.npm.taobao.org/class-utils/download/class-utils-0.3.6.tgz",
+ "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=",
+ "dev": true,
+ "requires": {
+ "arr-union": "^3.1.0",
+ "define-property": "^0.2.5",
+ "isobject": "^3.0.0",
+ "static-extend": "^0.1.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ }
+ }
+ },
+ "clean-css": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npm.taobao.org/clean-css/download/clean-css-4.2.1.tgz",
+ "integrity": "sha1-LUEe92uFabbQyEBo2r6FsKpeXBc=",
+ "dev": true,
+ "requires": {
+ "source-map": "~0.6.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "cli-cursor": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/cli-cursor/download/cli-cursor-2.1.0.tgz",
+ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
+ "dev": true,
+ "requires": {
+ "restore-cursor": "^2.0.0"
+ }
+ },
+ "cli-highlight": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npm.taobao.org/cli-highlight/download/cli-highlight-2.1.1.tgz",
+ "integrity": "sha1-IYAiPVFhixEvRQnPluSmx1Cwfpc=",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.3.0",
+ "highlight.js": "^9.6.0",
+ "mz": "^2.4.0",
+ "parse5": "^4.0.0",
+ "yargs": "^13.0.0"
+ }
+ },
+ "cli-spinners": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npm.taobao.org/cli-spinners/download/cli-spinners-2.2.0.tgz",
+ "integrity": "sha1-6LmI2SBsaSMC2O6DTnqFwBRNj3c=",
+ "dev": true
+ },
+ "cli-width": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npm.taobao.org/cli-width/download/cli-width-2.2.0.tgz",
+ "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=",
+ "dev": true
+ },
+ "clipboardy": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/clipboardy/download/clipboardy-2.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fclipboardy%2Fdownload%2Fclipboardy-2.1.0.tgz",
+ "integrity": "sha1-ASOgyPrJLyVtxWM14LuL6XpJCaU=",
+ "dev": true,
+ "requires": {
+ "arch": "^2.1.1",
+ "execa": "^1.0.0"
+ }
+ },
+ "cliui": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-5.0.0.tgz",
+ "integrity": "sha1-3u/P2y6AB4SqNPRvoI4GhRx7u8U=",
+ "dev": true,
+ "requires": {
+ "string-width": "^3.1.0",
+ "strip-ansi": "^5.2.0",
+ "wrap-ansi": "^5.1.0"
+ },
+ "dependencies": {
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz",
+ "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ }
+ }
+ }
+ },
+ "clone": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npm.taobao.org/clone/download/clone-1.0.4.tgz",
+ "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
+ "dev": true
+ },
+ "clone-deep": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npm.taobao.org/clone-deep/download/clone-deep-4.0.1.tgz",
+ "integrity": "sha1-wZ/Zvbv4WUK0/ZechNz31fB8I4c=",
+ "dev": true,
+ "requires": {
+ "is-plain-object": "^2.0.4",
+ "kind-of": "^6.0.2",
+ "shallow-clone": "^3.0.0"
+ }
+ },
+ "co": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npm.taobao.org/co/download/co-4.6.0.tgz",
+ "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
+ "dev": true,
+ "optional": true
+ },
+ "coa": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npm.taobao.org/coa/download/coa-2.0.2.tgz",
+ "integrity": "sha1-Q/bCEVG07yv1cYfbDXPeIp4+fsM=",
+ "dev": true,
+ "requires": {
+ "@types/q": "^1.5.1",
+ "chalk": "^2.4.1",
+ "q": "^1.1.2"
+ }
+ },
+ "code-point-at": {
+ "version": "1.1.0",
+ "resolved": "http://registry.npm.taobao.org/code-point-at/download/code-point-at-1.1.0.tgz",
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
+ "dev": true
+ },
+ "collection-visit": {
+ "version": "1.0.0",
+ "resolved": "http://registry.npm.taobao.org/collection-visit/download/collection-visit-1.0.0.tgz",
+ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
+ "dev": true,
+ "requires": {
+ "map-visit": "^1.0.0",
+ "object-visit": "^1.0.0"
+ }
+ },
+ "color": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npm.taobao.org/color/download/color-3.1.2.tgz",
+ "integrity": "sha1-aBSOf4XUGtdknF+oyBBvCY0inhA=",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.1",
+ "color-string": "^1.5.2"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor-convert%2Fdownload%2Fcolor-convert-1.9.3.tgz",
+ "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "http://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "dev": true
+ },
+ "color-string": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npm.taobao.org/color-string/download/color-string-1.5.3.tgz",
+ "integrity": "sha1-ybvF8BtYtUkvPWhXRZy2WQziBMw=",
+ "dev": true,
+ "requires": {
+ "color-name": "^1.0.0",
+ "simple-swizzle": "^0.2.2"
+ }
+ },
+ "combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.8.tgz",
+ "integrity": "sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=",
+ "dev": true,
+ "requires": {
+ "delayed-stream": "~1.0.0"
+ }
+ },
+ "commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.20.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.20.3.tgz",
+ "integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=",
+ "dev": true
+ },
+ "commondir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/commondir/download/commondir-1.0.1.tgz",
+ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
+ "dev": true
+ },
+ "component-emitter": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npm.taobao.org/component-emitter/download/component-emitter-1.3.0.tgz",
+ "integrity": "sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A=",
+ "dev": true
+ },
+ "compressible": {
+ "version": "2.0.17",
+ "resolved": "https://registry.npm.taobao.org/compressible/download/compressible-2.0.17.tgz",
+ "integrity": "sha1-bowQihatWDhKl386SCyiC/8vOME=",
+ "dev": true,
+ "requires": {
+ "mime-db": ">= 1.40.0 < 2"
+ }
+ },
+ "compression": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npm.taobao.org/compression/download/compression-1.7.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompression%2Fdownload%2Fcompression-1.7.4.tgz",
+ "integrity": "sha1-lVI+/xcMpXwpoMpB5v4TH0Hlu48=",
+ "dev": true,
+ "requires": {
+ "accepts": "~1.3.5",
+ "bytes": "3.0.0",
+ "compressible": "~2.0.16",
+ "debug": "2.6.9",
+ "on-headers": "~1.0.2",
+ "safe-buffer": "5.1.2",
+ "vary": "~1.1.2"
+ },
+ "dependencies": {
+ "bytes": {
+ "version": "3.0.0",
+ "resolved": "http://registry.npm.taobao.org/bytes/download/bytes-3.0.0.tgz",
+ "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=",
+ "dev": true
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "http://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz",
+ "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "http://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "dev": true
+ },
+ "concat-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npm.taobao.org/concat-stream/download/concat-stream-1.6.2.tgz",
+ "integrity": "sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ=",
+ "dev": true,
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
+ }
+ },
+ "connect-history-api-fallback": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npm.taobao.org/connect-history-api-fallback/download/connect-history-api-fallback-1.6.0.tgz",
+ "integrity": "sha1-izIIk1kwjRERFdgcrT/Oq4iPl7w=",
+ "dev": true
+ },
+ "console-browserify": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npm.taobao.org/console-browserify/download/console-browserify-1.1.0.tgz",
+ "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=",
+ "dev": true,
+ "requires": {
+ "date-now": "^0.1.4"
+ }
+ },
+ "consolidate": {
+ "version": "0.15.1",
+ "resolved": "https://registry.npm.taobao.org/consolidate/download/consolidate-0.15.1.tgz",
+ "integrity": "sha1-IasEMjXHGgfUXZqtmFk7DbpWurc=",
+ "dev": true,
+ "requires": {
+ "bluebird": "^3.1.1"
+ }
+ },
+ "constants-browserify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/constants-browserify/download/constants-browserify-1.0.0.tgz",
+ "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=",
+ "dev": true
+ },
+ "content-disposition": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npm.taobao.org/content-disposition/download/content-disposition-0.5.3.tgz",
+ "integrity": "sha1-4TDK9+cnkIfFYWwgB9BIVpiYT70=",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "5.1.2"
+ }
+ },
+ "content-type": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npm.taobao.org/content-type/download/content-type-1.0.4.tgz",
+ "integrity": "sha1-4TjMdeBAxyexlm/l5fjJruJW/js=",
+ "dev": true
+ },
+ "convert-source-map": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npm.taobao.org/convert-source-map/download/convert-source-map-1.6.0.tgz",
+ "integrity": "sha1-UbU3qMQ+DwTewZk7/83VBOdYrCA=",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.1"
+ }
+ },
+ "cookie": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npm.taobao.org/cookie/download/cookie-0.4.0.tgz",
+ "integrity": "sha1-vrQ35wIrO21JAZ0IhmUwPr6cFLo=",
+ "dev": true
+ },
+ "cookie-signature": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npm.taobao.org/cookie-signature/download/cookie-signature-1.0.6.tgz",
+ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=",
+ "dev": true
+ },
+ "copy-concurrently": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npm.taobao.org/copy-concurrently/download/copy-concurrently-1.0.5.tgz",
+ "integrity": "sha1-kilzmMrjSTf8r9bsgTnBgFHwteA=",
+ "dev": true,
+ "requires": {
+ "aproba": "^1.1.1",
+ "fs-write-stream-atomic": "^1.0.8",
+ "iferr": "^0.1.5",
+ "mkdirp": "^0.5.1",
+ "rimraf": "^2.5.4",
+ "run-queue": "^1.0.0"
+ }
+ },
+ "copy-descriptor": {
+ "version": "0.1.1",
+ "resolved": "http://registry.npm.taobao.org/copy-descriptor/download/copy-descriptor-0.1.1.tgz",
+ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
+ "dev": true
+ },
+ "copy-webpack-plugin": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npm.taobao.org/copy-webpack-plugin/download/copy-webpack-plugin-4.6.0.tgz",
+ "integrity": "sha1-5/QN2KaEd9QF3Rt6hUquMksVi64=",
+ "dev": true,
+ "requires": {
+ "cacache": "^10.0.4",
+ "find-cache-dir": "^1.0.0",
+ "globby": "^7.1.1",
+ "is-glob": "^4.0.0",
+ "loader-utils": "^1.1.0",
+ "minimatch": "^3.0.4",
+ "p-limit": "^1.0.0",
+ "serialize-javascript": "^1.4.0"
+ },
+ "dependencies": {
+ "cacache": {
+ "version": "10.0.4",
+ "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-10.0.4.tgz?cache=0&sync_timestamp=1569877543868&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-10.0.4.tgz",
+ "integrity": "sha1-ZFI2eZnv+dQYiu/ZoU6dfGomNGA=",
+ "dev": true,
+ "requires": {
+ "bluebird": "^3.5.1",
+ "chownr": "^1.0.1",
+ "glob": "^7.1.2",
+ "graceful-fs": "^4.1.11",
+ "lru-cache": "^4.1.1",
+ "mississippi": "^2.0.0",
+ "mkdirp": "^0.5.1",
+ "move-concurrently": "^1.0.1",
+ "promise-inflight": "^1.0.1",
+ "rimraf": "^2.6.2",
+ "ssri": "^5.2.4",
+ "unique-filename": "^1.1.0",
+ "y18n": "^4.0.0"
+ }
+ },
+ "find-cache-dir": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-1.0.0.tgz",
+ "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=",
+ "dev": true,
+ "requires": {
+ "commondir": "^1.0.1",
+ "make-dir": "^1.0.0",
+ "pkg-dir": "^2.0.0"
+ }
+ },
+ "globby": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npm.taobao.org/globby/download/globby-7.1.1.tgz?cache=0&sync_timestamp=1562335642755&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-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"
+ }
+ },
+ "lru-cache": {
+ "version": "4.1.5",
+ "resolved": "http://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz",
+ "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=",
+ "dev": true,
+ "requires": {
+ "pseudomap": "^1.0.2",
+ "yallist": "^2.1.2"
+ }
+ },
+ "make-dir": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-1.3.0.tgz",
+ "integrity": "sha1-ecEDO4BRW9bSTsmTPoYMp17ifww=",
+ "dev": true,
+ "requires": {
+ "pify": "^3.0.0"
+ }
+ },
+ "mississippi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/mississippi/download/mississippi-2.0.0.tgz",
+ "integrity": "sha1-NEKlCPr8KFAEhv7qmUCWduTuWm8=",
+ "dev": true,
+ "requires": {
+ "concat-stream": "^1.5.0",
+ "duplexify": "^3.4.2",
+ "end-of-stream": "^1.1.0",
+ "flush-write-stream": "^1.0.0",
+ "from2": "^2.1.0",
+ "parallel-transform": "^1.1.0",
+ "pump": "^2.0.1",
+ "pumpify": "^1.3.3",
+ "stream-each": "^1.1.0",
+ "through2": "^2.0.0"
+ }
+ },
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true
+ },
+ "pkg-dir": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-2.0.0.tgz",
+ "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=",
+ "dev": true,
+ "requires": {
+ "find-up": "^2.1.0"
+ }
+ },
+ "pump": {
+ "version": "2.0.1",
+ "resolved": "http://registry.npm.taobao.org/pump/download/pump-2.0.1.tgz",
+ "integrity": "sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk=",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "slash": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz",
+ "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
+ "dev": true
+ },
+ "ssri": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-5.3.0.tgz",
+ "integrity": "sha1-ujhyycbTOgcEp9cf8EXl7EiZnQY=",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "yallist": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz",
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
+ "dev": true
+ }
+ }
+ },
+ "core-js": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npm.taobao.org/core-js/download/core-js-2.6.9.tgz",
+ "integrity": "sha1-a0shRiDINBUuF5Mjcn/Bl0GwhPI="
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "resolved": "http://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+ "dev": true
+ },
+ "cosmiconfig": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-5.2.1.tgz",
+ "integrity": "sha1-BA9yaAnFked6F8CjYmykW08Wixo=",
+ "dev": true,
+ "requires": {
+ "import-fresh": "^2.0.0",
+ "is-directory": "^0.3.1",
+ "js-yaml": "^3.13.1",
+ "parse-json": "^4.0.0"
+ }
+ },
+ "create-ecdh": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npm.taobao.org/create-ecdh/download/create-ecdh-4.0.3.tgz",
+ "integrity": "sha1-yREbbzMEXEaX8UR4f5JUzcd8Rf8=",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.1.0",
+ "elliptic": "^6.0.0"
+ }
+ },
+ "create-hash": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npm.taobao.org/create-hash/download/create-hash-1.2.0.tgz",
+ "integrity": "sha1-iJB4rxGmN1a8+1m9IhmWvjqe8ZY=",
+ "dev": true,
+ "requires": {
+ "cipher-base": "^1.0.1",
+ "inherits": "^2.0.1",
+ "md5.js": "^1.3.4",
+ "ripemd160": "^2.0.1",
+ "sha.js": "^2.4.0"
+ }
+ },
+ "create-hmac": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npm.taobao.org/create-hmac/download/create-hmac-1.1.7.tgz",
+ "integrity": "sha1-aRcMeLOrlXFHsriwRXLkfq0iQ/8=",
+ "dev": true,
+ "requires": {
+ "cipher-base": "^1.0.3",
+ "create-hash": "^1.1.0",
+ "inherits": "^2.0.1",
+ "ripemd160": "^2.0.0",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
+ }
+ },
+ "cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz?cache=0&sync_timestamp=1570439926300&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-6.0.5.tgz",
+ "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=",
+ "dev": true,
+ "requires": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ }
+ },
+ "crypto-browserify": {
+ "version": "3.12.0",
+ "resolved": "https://registry.npm.taobao.org/crypto-browserify/download/crypto-browserify-3.12.0.tgz",
+ "integrity": "sha1-OWz58xN/A+S45TLFj2mCVOAPgOw=",
+ "dev": true,
+ "requires": {
+ "browserify-cipher": "^1.0.0",
+ "browserify-sign": "^4.0.0",
+ "create-ecdh": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "create-hmac": "^1.1.0",
+ "diffie-hellman": "^5.0.0",
+ "inherits": "^2.0.1",
+ "pbkdf2": "^3.0.3",
+ "public-encrypt": "^4.0.0",
+ "randombytes": "^2.0.0",
+ "randomfill": "^1.0.3"
+ }
+ },
+ "css-color-names": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npm.taobao.org/css-color-names/download/css-color-names-0.0.4.tgz",
+ "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=",
+ "dev": true
+ },
+ "css-declaration-sorter": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npm.taobao.org/css-declaration-sorter/download/css-declaration-sorter-4.0.1.tgz",
+ "integrity": "sha1-wZiUD2OnbX42wecQGLABchBUyyI=",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.1",
+ "timsort": "^0.3.0"
+ }
+ },
+ "css-loader": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/css-loader/download/css-loader-1.0.1.tgz",
+ "integrity": "sha1-aIW7UjOzXsR7AGBX2gHMZAtref4=",
+ "dev": true,
+ "requires": {
+ "babel-code-frame": "^6.26.0",
+ "css-selector-tokenizer": "^0.7.0",
+ "icss-utils": "^2.1.0",
+ "loader-utils": "^1.0.2",
+ "lodash": "^4.17.11",
+ "postcss": "^6.0.23",
+ "postcss-modules-extract-imports": "^1.2.0",
+ "postcss-modules-local-by-default": "^1.2.0",
+ "postcss-modules-scope": "^1.1.0",
+ "postcss-modules-values": "^1.3.0",
+ "postcss-value-parser": "^3.3.0",
+ "source-list-map": "^2.0.0"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npm.taobao.org/postcss/download/postcss-6.0.23.tgz",
+ "integrity": "sha1-YcgswyisYOZ3ZF+XkFTrmLwOMyQ=",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "css-select": {
+ "version": "2.0.2",
+ "resolved": "http://registry.npm.taobao.org/css-select/download/css-select-2.0.2.tgz",
+ "integrity": "sha1-q0OGzsnh9miFVWSxfDcztDsqXt4=",
+ "dev": true,
+ "requires": {
+ "boolbase": "^1.0.0",
+ "css-what": "^2.1.2",
+ "domutils": "^1.7.0",
+ "nth-check": "^1.0.2"
+ }
+ },
+ "css-select-base-adapter": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npm.taobao.org/css-select-base-adapter/download/css-select-base-adapter-0.1.1.tgz",
+ "integrity": "sha1-Oy/0lyzDYquIVhUHqVQIoUMhNdc=",
+ "dev": true
+ },
+ "css-selector-tokenizer": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npm.taobao.org/css-selector-tokenizer/download/css-selector-tokenizer-0.7.1.tgz",
+ "integrity": "sha1-oXcnGovKUBkXL0+JH8bu2cv2jV0=",
+ "dev": true,
+ "requires": {
+ "cssesc": "^0.1.0",
+ "fastparse": "^1.1.1",
+ "regexpu-core": "^1.0.0"
+ },
+ "dependencies": {
+ "cssesc": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npm.taobao.org/cssesc/download/cssesc-0.1.0.tgz",
+ "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=",
+ "dev": true
+ },
+ "jsesc": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-0.5.0.tgz",
+ "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
+ "dev": true
+ },
+ "regexpu-core": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/regexpu-core/download/regexpu-core-1.0.0.tgz?cache=0&sync_timestamp=1568375270709&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpu-core%2Fdownload%2Fregexpu-core-1.0.0.tgz",
+ "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=",
+ "dev": true,
+ "requires": {
+ "regenerate": "^1.2.1",
+ "regjsgen": "^0.2.0",
+ "regjsparser": "^0.1.4"
+ }
+ },
+ "regjsgen": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npm.taobao.org/regjsgen/download/regjsgen-0.2.0.tgz",
+ "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=",
+ "dev": true
+ },
+ "regjsparser": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npm.taobao.org/regjsparser/download/regjsparser-0.1.5.tgz",
+ "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=",
+ "dev": true,
+ "requires": {
+ "jsesc": "~0.5.0"
+ }
+ }
+ }
+ },
+ "css-tree": {
+ "version": "1.0.0-alpha.33",
+ "resolved": "https://registry.npm.taobao.org/css-tree/download/css-tree-1.0.0-alpha.33.tgz",
+ "integrity": "sha1-lw4g5akfejeN3Q/FjQtsjU876T4=",
+ "dev": true,
+ "requires": {
+ "mdn-data": "2.0.4",
+ "source-map": "^0.5.3"
+ }
+ },
+ "css-unit-converter": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npm.taobao.org/css-unit-converter/download/css-unit-converter-1.1.1.tgz",
+ "integrity": "sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=",
+ "dev": true
+ },
+ "css-what": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npm.taobao.org/css-what/download/css-what-2.1.3.tgz?cache=0&sync_timestamp=1564773794818&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-what%2Fdownload%2Fcss-what-2.1.3.tgz",
+ "integrity": "sha1-ptdgRXM2X+dGhsPzEcVlE9iChfI=",
+ "dev": true
+ },
+ "cssesc": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/cssesc/download/cssesc-2.0.0.tgz",
+ "integrity": "sha1-OxO9G7HLNuG8taTc0n9UxdyzVwM=",
+ "dev": true
+ },
+ "cssnano": {
+ "version": "4.1.10",
+ "resolved": "https://registry.npm.taobao.org/cssnano/download/cssnano-4.1.10.tgz",
+ "integrity": "sha1-CsQfCxPRPUZUh+ERt3jULaYxuLI=",
+ "dev": true,
+ "requires": {
+ "cosmiconfig": "^5.0.0",
+ "cssnano-preset-default": "^4.0.7",
+ "is-resolvable": "^1.0.0",
+ "postcss": "^7.0.0"
+ }
+ },
+ "cssnano-preset-default": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npm.taobao.org/cssnano-preset-default/download/cssnano-preset-default-4.0.7.tgz",
+ "integrity": "sha1-UexmLM/KD4izltzZZ5zbkxvhf3Y=",
+ "dev": true,
+ "requires": {
+ "css-declaration-sorter": "^4.0.1",
+ "cssnano-util-raw-cache": "^4.0.1",
+ "postcss": "^7.0.0",
+ "postcss-calc": "^7.0.1",
+ "postcss-colormin": "^4.0.3",
+ "postcss-convert-values": "^4.0.1",
+ "postcss-discard-comments": "^4.0.2",
+ "postcss-discard-duplicates": "^4.0.2",
+ "postcss-discard-empty": "^4.0.1",
+ "postcss-discard-overridden": "^4.0.1",
+ "postcss-merge-longhand": "^4.0.11",
+ "postcss-merge-rules": "^4.0.3",
+ "postcss-minify-font-values": "^4.0.2",
+ "postcss-minify-gradients": "^4.0.2",
+ "postcss-minify-params": "^4.0.2",
+ "postcss-minify-selectors": "^4.0.2",
+ "postcss-normalize-charset": "^4.0.1",
+ "postcss-normalize-display-values": "^4.0.2",
+ "postcss-normalize-positions": "^4.0.2",
+ "postcss-normalize-repeat-style": "^4.0.2",
+ "postcss-normalize-string": "^4.0.2",
+ "postcss-normalize-timing-functions": "^4.0.2",
+ "postcss-normalize-unicode": "^4.0.1",
+ "postcss-normalize-url": "^4.0.1",
+ "postcss-normalize-whitespace": "^4.0.2",
+ "postcss-ordered-values": "^4.1.2",
+ "postcss-reduce-initial": "^4.0.3",
+ "postcss-reduce-transforms": "^4.0.2",
+ "postcss-svgo": "^4.0.2",
+ "postcss-unique-selectors": "^4.0.1"
+ }
+ },
+ "cssnano-util-get-arguments": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/cssnano-util-get-arguments/download/cssnano-util-get-arguments-4.0.0.tgz",
+ "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=",
+ "dev": true
+ },
+ "cssnano-util-get-match": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/cssnano-util-get-match/download/cssnano-util-get-match-4.0.0.tgz",
+ "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=",
+ "dev": true
+ },
+ "cssnano-util-raw-cache": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npm.taobao.org/cssnano-util-raw-cache/download/cssnano-util-raw-cache-4.0.1.tgz",
+ "integrity": "sha1-sm1f1fcqEd/np4RvtMZyYPlr8oI=",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.0"
+ }
+ },
+ "cssnano-util-same-parent": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npm.taobao.org/cssnano-util-same-parent/download/cssnano-util-same-parent-4.0.1.tgz",
+ "integrity": "sha1-V0CC+yhZ0ttDOFWDXZqEVuoYu/M=",
+ "dev": true
+ },
+ "csso": {
+ "version": "3.5.1",
+ "resolved": "https://registry.npm.taobao.org/csso/download/csso-3.5.1.tgz",
+ "integrity": "sha1-e564vmFiiXPBsmHhadLwJACOdYs=",
+ "dev": true,
+ "requires": {
+ "css-tree": "1.0.0-alpha.29"
+ },
+ "dependencies": {
+ "css-tree": {
+ "version": "1.0.0-alpha.29",
+ "resolved": "https://registry.npm.taobao.org/css-tree/download/css-tree-1.0.0-alpha.29.tgz",
+ "integrity": "sha1-P6nU7zFCy9HDAedmTB81K9gvWjk=",
+ "dev": true,
+ "requires": {
+ "mdn-data": "~1.1.0",
+ "source-map": "^0.5.3"
+ }
+ },
+ "mdn-data": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npm.taobao.org/mdn-data/download/mdn-data-1.1.4.tgz?cache=0&sync_timestamp=1562672674261&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmdn-data%2Fdownload%2Fmdn-data-1.1.4.tgz",
+ "integrity": "sha1-ULXU/8RXUnZXPE7tuHgIEqhBnwE=",
+ "dev": true
+ }
+ }
+ },
+ "current-script-polyfill": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/current-script-polyfill/download/current-script-polyfill-1.0.0.tgz",
+ "integrity": "sha1-8xz35PPiGLBybnOMqSoC00iO9hU=",
+ "dev": true
+ },
+ "cyclist": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/cyclist/download/cyclist-1.0.1.tgz",
+ "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=",
+ "dev": true
+ },
+ "d3-color": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npm.taobao.org/d3-color/download/d3-color-1.4.1.tgz",
+ "integrity": "sha1-xSACv4hGraRCTVXZeYL+8m6zvIo="
+ },
+ "d3-dispatch": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npm.taobao.org/d3-dispatch/download/d3-dispatch-1.0.6.tgz",
+ "integrity": "sha1-ANN7zuTdjNl3Kd2JOgrCnKq6XVg="
+ },
+ "d3-ease": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npm.taobao.org/d3-ease/download/d3-ease-1.0.6.tgz",
+ "integrity": "sha1-69ttoi36wKIiIvLU2gb2bEFqDsA="
+ },
+ "d3-force": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/d3-force/download/d3-force-2.0.1.tgz",
+ "integrity": "sha1-MXUO7oxDU1MB1XEZW/loO+2lNOI=",
+ "requires": {
+ "d3-dispatch": "1",
+ "d3-quadtree": "1",
+ "d3-timer": "1"
+ }
+ },
+ "d3-interpolate": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npm.taobao.org/d3-interpolate/download/d3-interpolate-1.4.0.tgz",
+ "integrity": "sha1-Um554tgNqjg/ngwcHH3MDwWD6Yc=",
+ "requires": {
+ "d3-color": "1"
+ }
+ },
+ "d3-quadtree": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npm.taobao.org/d3-quadtree/download/d3-quadtree-1.0.7.tgz",
+ "integrity": "sha1-youE33u1N2P+PC8kvUNRN/TlMTU="
+ },
+ "d3-timer": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npm.taobao.org/d3-timer/download/d3-timer-1.0.10.tgz",
+ "integrity": "sha1-3+dripF0iDGxO22ceT/71QjdneU="
+ },
+ "dagre": {
+ "version": "0.8.5",
+ "resolved": "https://registry.npm.taobao.org/dagre/download/dagre-0.8.5.tgz",
+ "integrity": "sha1-ujCwBV2sErbB/MJHgXRCd30Gr+4=",
+ "requires": {
+ "graphlib": "^2.1.8",
+ "lodash": "^4.17.15"
+ }
+ },
+ "dashdash": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npm.taobao.org/dashdash/download/dashdash-1.14.1.tgz",
+ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "^1.0.0"
+ }
+ },
+ "date-now": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npm.taobao.org/date-now/download/date-now-0.1.4.tgz",
+ "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=",
+ "dev": true
+ },
+ "de-indent": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npm.taobao.org/de-indent/download/de-indent-1.0.2.tgz",
+ "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=",
+ "dev": true
+ },
+ "debug": {
+ "version": "4.1.1",
+ "resolved": "http://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz",
+ "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdecamelize%2Fdownload%2Fdecamelize-1.2.0.tgz",
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+ "dev": true
+ },
+ "decode-uri-component": {
+ "version": "0.2.0",
+ "resolved": "http://registry.npm.taobao.org/decode-uri-component/download/decode-uri-component-0.2.0.tgz",
+ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
+ "dev": true
+ },
+ "deep-equal": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npm.taobao.org/deep-equal/download/deep-equal-1.1.0.tgz",
+ "integrity": "sha1-MQPN+KttMs9KjfeGVFjyuNM/N0U=",
+ "dev": true,
+ "requires": {
+ "is-arguments": "^1.0.4",
+ "is-date-object": "^1.0.1",
+ "is-regex": "^1.0.4",
+ "object-is": "^1.0.1",
+ "object-keys": "^1.1.1",
+ "regexp.prototype.flags": "^1.2.0"
+ }
+ },
+ "deep-is": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npm.taobao.org/deep-is/download/deep-is-0.1.3.tgz",
+ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
+ "dev": true
+ },
+ "deepmerge": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npm.taobao.org/deepmerge/download/deepmerge-1.5.2.tgz?cache=0&sync_timestamp=1570547201087&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeepmerge%2Fdownload%2Fdeepmerge-1.5.2.tgz",
+ "integrity": "sha1-EEmdhohEza1P7ghC34x/bwyVp1M="
+ },
+ "default-gateway": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npm.taobao.org/default-gateway/download/default-gateway-5.0.3.tgz?cache=0&sync_timestamp=1565763930901&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefault-gateway%2Fdownload%2Fdefault-gateway-5.0.3.tgz",
+ "integrity": "sha1-GENMlDChgDWihh94Ob92abNDbm8=",
+ "dev": true,
+ "requires": {
+ "execa": "^2.0.3"
+ },
+ "dependencies": {
+ "cross-spawn": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-7.0.1.tgz?cache=0&sync_timestamp=1570439926300&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-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"
+ }
+ },
+ "execa": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/execa/download/execa-2.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-2.1.0.tgz",
+ "integrity": "sha1-5dPs2DfSpg7FDz2nj9OXZ3R7vpk=",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^7.0.0",
+ "get-stream": "^5.0.0",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^3.0.0",
+ "onetime": "^5.1.0",
+ "p-finally": "^2.0.0",
+ "signal-exit": "^3.0.2",
+ "strip-final-newline": "^2.0.0"
+ }
+ },
+ "get-stream": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-5.1.0.tgz",
+ "integrity": "sha1-ASA83JJZf5uQkGfD5lbMH008Tck=",
+ "dev": true,
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ },
+ "is-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/is-stream/download/is-stream-2.0.0.tgz",
+ "integrity": "sha1-venDJoDW+uBBKdasnZIc54FfeOM=",
+ "dev": true
+ },
+ "mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-2.1.0.tgz",
+ "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=",
+ "dev": true
+ },
+ "npm-run-path": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-3.1.0.tgz",
+ "integrity": "sha1-f5G+MX9qRm7+08nymArYpO6LD6U=",
+ "dev": true,
+ "requires": {
+ "path-key": "^3.0.0"
+ }
+ },
+ "onetime": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npm.taobao.org/onetime/download/onetime-5.1.0.tgz",
+ "integrity": "sha1-//DzyRYX/mK7UBiWNumayKbfe+U=",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "^2.1.0"
+ }
+ },
+ "p-finally": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/p-finally/download/p-finally-2.0.1.tgz",
+ "integrity": "sha1-vW/KqcVZoJa2gIBvTWV7Pw8kBWE=",
+ "dev": true
+ },
+ "path-key": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-3.1.0.tgz",
+ "integrity": "sha1-maENhwqAO91e5vBHDljfzS+aVNM=",
+ "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
+ },
+ "which": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/which/download/which-2.0.1.tgz?cache=0&sync_timestamp=1570145314160&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-2.0.1.tgz",
+ "integrity": "sha1-8c+U0HqOVxtv8AauuR0DAMR+8KQ=",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ }
+ }
+ },
+ "defaults": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npm.taobao.org/defaults/download/defaults-1.0.3.tgz",
+ "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
+ "dev": true,
+ "requires": {
+ "clone": "^1.0.2"
+ }
+ },
+ "define-properties": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npm.taobao.org/define-properties/download/define-properties-1.1.3.tgz",
+ "integrity": "sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=",
+ "dev": true,
+ "requires": {
+ "object-keys": "^1.0.12"
+ }
+ },
+ "define-property": {
+ "version": "2.0.2",
+ "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-2.0.2.tgz",
+ "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.2",
+ "isobject": "^3.0.1"
+ },
+ "dependencies": {
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "http://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": "http://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": "http://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"
+ }
+ }
+ }
+ },
+ "del": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npm.taobao.org/del/download/del-4.1.1.tgz?cache=0&sync_timestamp=1566558736172&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdel%2Fdownload%2Fdel-4.1.1.tgz",
+ "integrity": "sha1-no8RciLqRKMf86FWwEm5kFKp8LQ=",
+ "dev": true,
+ "requires": {
+ "@types/glob": "^7.1.1",
+ "globby": "^6.1.0",
+ "is-path-cwd": "^2.0.0",
+ "is-path-in-cwd": "^2.0.0",
+ "p-map": "^2.0.0",
+ "pify": "^4.0.1",
+ "rimraf": "^2.6.3"
+ },
+ "dependencies": {
+ "globby": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npm.taobao.org/globby/download/globby-6.1.0.tgz?cache=0&sync_timestamp=1562335642755&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-6.1.0.tgz",
+ "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=",
+ "dev": true,
+ "requires": {
+ "array-union": "^1.0.1",
+ "glob": "^7.0.3",
+ "object-assign": "^4.0.1",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ }
+ }
+ }
+ }
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
+ "dev": true
+ },
+ "depd": {
+ "version": "1.1.2",
+ "resolved": "http://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz",
+ "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
+ "dev": true
+ },
+ "des.js": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/des.js/download/des.js-1.0.0.tgz",
+ "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "destroy": {
+ "version": "1.0.4",
+ "resolved": "http://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz",
+ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=",
+ "dev": true
+ },
+ "detect-browser": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npm.taobao.org/detect-browser/download/detect-browser-5.1.1.tgz?cache=0&sync_timestamp=1592803473542&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdetect-browser%2Fdownload%2Fdetect-browser-5.1.1.tgz",
+ "integrity": "sha1-qADbkdP9YNCGFmn1mE8b6f++AJw="
+ },
+ "detect-node": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npm.taobao.org/detect-node/download/detect-node-2.0.4.tgz",
+ "integrity": "sha1-AU7o+PZpxcWAI9pkuBecCDooxGw=",
+ "dev": true
+ },
+ "diffie-hellman": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npm.taobao.org/diffie-hellman/download/diffie-hellman-5.0.3.tgz",
+ "integrity": "sha1-QOjumPVaIUlgcUaSHGPhrl89KHU=",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.1.0",
+ "miller-rabin": "^4.0.0",
+ "randombytes": "^2.0.0"
+ }
+ },
+ "dir-glob": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npm.taobao.org/dir-glob/download/dir-glob-2.2.2.tgz",
+ "integrity": "sha1-+gnwaUFTyJGLGLoN6vrpR2n8UMQ=",
+ "dev": true,
+ "requires": {
+ "path-type": "^3.0.0"
+ }
+ },
+ "dns-equal": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/dns-equal/download/dns-equal-1.0.0.tgz",
+ "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=",
+ "dev": true
+ },
+ "dns-packet": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npm.taobao.org/dns-packet/download/dns-packet-1.3.1.tgz",
+ "integrity": "sha1-EqpCaYEHW+UAuRDu3NC0fdfe2lo=",
+ "dev": true,
+ "requires": {
+ "ip": "^1.1.0",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "dns-txt": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npm.taobao.org/dns-txt/download/dns-txt-2.0.2.tgz",
+ "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=",
+ "dev": true,
+ "requires": {
+ "buffer-indexof": "^1.0.0"
+ }
+ },
+ "doctrine": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/doctrine/download/doctrine-2.1.0.tgz",
+ "integrity": "sha1-XNAfwQFiG0LEzX9dGmYkNxbT850=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "esutils": "^2.0.2"
+ }
+ },
+ "dom-converter": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npm.taobao.org/dom-converter/download/dom-converter-0.2.0.tgz",
+ "integrity": "sha1-ZyGp2u4uKTaClVtq/kFncWJ7t2g=",
+ "dev": true,
+ "requires": {
+ "utila": "~0.4"
+ }
+ },
+ "dom-serializer": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npm.taobao.org/dom-serializer/download/dom-serializer-0.2.1.tgz?cache=0&sync_timestamp=1564710970695&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-serializer%2Fdownload%2Fdom-serializer-0.2.1.tgz",
+ "integrity": "sha1-E2UMhQ2v/qNdi2JqTPxNOhdkP9s=",
+ "dev": true,
+ "requires": {
+ "domelementtype": "^2.0.1",
+ "entities": "^2.0.0"
+ },
+ "dependencies": {
+ "domelementtype": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-2.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-2.0.1.tgz",
+ "integrity": "sha1-H4vf6R9aeAYydOgDtL3O326U+U0=",
+ "dev": true
+ }
+ }
+ },
+ "domain-browser": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npm.taobao.org/domain-browser/download/domain-browser-1.2.0.tgz",
+ "integrity": "sha1-PTH1AZGmdJ3RN1p/Ui6CPULlTto=",
+ "dev": true
+ },
+ "domelementtype": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-1.3.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-1.3.1.tgz",
+ "integrity": "sha1-0EjESzew0Qp/Kj1f7j9DM9eQSB8=",
+ "dev": true
+ },
+ "domhandler": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npm.taobao.org/domhandler/download/domhandler-2.4.2.tgz",
+ "integrity": "sha1-iAUJfpM9ZehVRvcm1g9euItE+AM=",
+ "dev": true,
+ "requires": {
+ "domelementtype": "1"
+ }
+ },
+ "domutils": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npm.taobao.org/domutils/download/domutils-1.7.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomutils%2Fdownload%2Fdomutils-1.7.0.tgz",
+ "integrity": "sha1-Vuo0HoNOBuZ0ivehyyXaZ+qfjCo=",
+ "dev": true,
+ "requires": {
+ "dom-serializer": "0",
+ "domelementtype": "1"
+ }
+ },
+ "dot-prop": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npm.taobao.org/dot-prop/download/dot-prop-4.2.0.tgz",
+ "integrity": "sha1-HxngwuGqDjJ5fEl5nyg3rGr2nFc=",
+ "dev": true,
+ "requires": {
+ "is-obj": "^1.0.0"
+ }
+ },
+ "dotenv": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npm.taobao.org/dotenv/download/dotenv-7.0.0.tgz",
+ "integrity": "sha1-or481Sc2ZzIG6KhftSEO6ilijnw=",
+ "dev": true
+ },
+ "dotenv-expand": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npm.taobao.org/dotenv-expand/download/dotenv-expand-5.1.0.tgz",
+ "integrity": "sha1-P7rwIL/XlIhAcuomsel5HUWmKfA=",
+ "dev": true
+ },
+ "duplexer": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npm.taobao.org/duplexer/download/duplexer-0.1.1.tgz",
+ "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=",
+ "dev": true
+ },
+ "duplexify": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npm.taobao.org/duplexify/download/duplexify-3.7.1.tgz",
+ "integrity": "sha1-Kk31MX9sz9kfhtb9JdjYoQO4gwk=",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0",
+ "stream-shift": "^1.0.0"
+ }
+ },
+ "easy-stack": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/easy-stack/download/easy-stack-1.0.0.tgz",
+ "integrity": "sha1-EskbMIWjfwuqM26UhurEv5Tj54g=",
+ "dev": true
+ },
+ "ecc-jsbn": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npm.taobao.org/ecc-jsbn/download/ecc-jsbn-0.1.2.tgz",
+ "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
+ "dev": true,
+ "requires": {
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.1.0"
+ }
+ },
+ "ee-first": {
+ "version": "1.1.1",
+ "resolved": "http://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz",
+ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
+ "dev": true
+ },
+ "ejs": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npm.taobao.org/ejs/download/ejs-2.7.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fejs%2Fdownload%2Fejs-2.7.1.tgz",
+ "integrity": "sha1-W1q1f3GLedSsqSVEV6/s02+oAig=",
+ "dev": true
+ },
+ "electron-to-chromium": {
+ "version": "1.3.280",
+ "resolved": "https://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.280.tgz",
+ "integrity": "sha1-X4lQyDKePhG1nHBf1ZtLjZs95bk=",
+ "dev": true
+ },
+ "element-ui": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npm.taobao.org/element-ui/download/element-ui-2.12.0.tgz",
+ "integrity": "sha1-qJO8Ea5Pfbt+nVQWBvI+ZD8THuQ=",
+ "requires": {
+ "async-validator": "~1.8.1",
+ "babel-helper-vue-jsx-merge-props": "^2.0.0",
+ "deepmerge": "^1.2.0",
+ "normalize-wheel": "^1.0.1",
+ "resize-observer-polyfill": "^1.5.0",
+ "throttle-debounce": "^1.0.1"
+ }
+ },
+ "elliptic": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npm.taobao.org/elliptic/download/elliptic-6.5.1.tgz?cache=0&sync_timestamp=1567564506448&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felliptic%2Fdownload%2Felliptic-6.5.1.tgz",
+ "integrity": "sha1-w4D1+Qm/G5tEKNAozRjTsO/WtSs=",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.4.0",
+ "brorand": "^1.0.1",
+ "hash.js": "^1.0.0",
+ "hmac-drbg": "^1.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.0"
+ }
+ },
+ "emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz",
+ "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=",
+ "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
+ },
+ "encodeurl": {
+ "version": "1.0.2",
+ "resolved": "http://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.2.tgz",
+ "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
+ "dev": true
+ },
+ "end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npm.taobao.org/end-of-stream/download/end-of-stream-1.4.4.tgz",
+ "integrity": "sha1-WuZKX0UFe682JuwU2gyl5LJDHrA=",
+ "dev": true,
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "enhanced-resolve": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npm.taobao.org/enhanced-resolve/download/enhanced-resolve-4.1.1.tgz",
+ "integrity": "sha1-KTfiuAZs0P584JkKmPDXGjUYn2Y=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "memory-fs": "^0.5.0",
+ "tapable": "^1.0.0"
+ },
+ "dependencies": {
+ "memory-fs": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.5.0.tgz",
+ "integrity": "sha1-MkwBKIuIZSlm0WHbd4OHIIRajjw=",
+ "dev": true,
+ "requires": {
+ "errno": "^0.1.3",
+ "readable-stream": "^2.0.1"
+ }
+ }
+ }
+ },
+ "entities": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/entities/download/entities-2.0.0.tgz",
+ "integrity": "sha1-aNYITKsbB5dnVA2A5Wo5tCPkq/Q=",
+ "dev": true
+ },
+ "errno": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npm.taobao.org/errno/download/errno-0.1.7.tgz",
+ "integrity": "sha1-RoTXF3mtOa8Xfj8AeZb3xnyFJhg=",
+ "dev": true,
+ "requires": {
+ "prr": "~1.0.1"
+ }
+ },
+ "error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npm.taobao.org/error-ex/download/error-ex-1.3.2.tgz",
+ "integrity": "sha1-tKxAZIEH/c3PriQvQovqihTU8b8=",
+ "dev": true,
+ "requires": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "error-stack-parser": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npm.taobao.org/error-stack-parser/download/error-stack-parser-2.0.4.tgz?cache=0&sync_timestamp=1568768368147&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ferror-stack-parser%2Fdownload%2Ferror-stack-parser-2.0.4.tgz",
+ "integrity": "sha1-p1c5fcXZ3pc6yaXX1Oit58+ukQE=",
+ "dev": true,
+ "requires": {
+ "stackframe": "^1.1.0"
+ }
+ },
+ "es-abstract": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.15.0.tgz",
+ "integrity": "sha1-iISSjsfkCnnjybyBLTfRDIskzFc=",
+ "dev": true,
+ "requires": {
+ "es-to-primitive": "^1.2.0",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.0",
+ "is-callable": "^1.1.4",
+ "is-regex": "^1.0.4",
+ "object-inspect": "^1.6.0",
+ "object-keys": "^1.1.1",
+ "string.prototype.trimleft": "^2.1.0",
+ "string.prototype.trimright": "^2.1.0"
+ }
+ },
+ "es-to-primitive": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npm.taobao.org/es-to-primitive/download/es-to-primitive-1.2.0.tgz",
+ "integrity": "sha1-7fckeAM0VujdqO8J4ArZZQcH83c=",
+ "dev": true,
+ "requires": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ }
+ },
+ "escape-html": {
+ "version": "1.0.3",
+ "resolved": "http://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz",
+ "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=",
+ "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",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true
+ },
+ "eslint": {
+ "version": "5.16.0",
+ "resolved": "https://registry.npm.taobao.org/eslint/download/eslint-5.16.0.tgz",
+ "integrity": "sha1-oeOsGq5KP72Clvz496tzFMu2q+o=",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "ajv": "^6.9.1",
+ "chalk": "^2.1.0",
+ "cross-spawn": "^6.0.5",
+ "debug": "^4.0.1",
+ "doctrine": "^3.0.0",
+ "eslint-scope": "^4.0.3",
+ "eslint-utils": "^1.3.1",
+ "eslint-visitor-keys": "^1.0.0",
+ "espree": "^5.0.1",
+ "esquery": "^1.0.1",
+ "esutils": "^2.0.2",
+ "file-entry-cache": "^5.0.1",
+ "functional-red-black-tree": "^1.0.1",
+ "glob": "^7.1.2",
+ "globals": "^11.7.0",
+ "ignore": "^4.0.6",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "inquirer": "^6.2.2",
+ "js-yaml": "^3.13.0",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.3.0",
+ "lodash": "^4.17.11",
+ "minimatch": "^3.0.4",
+ "mkdirp": "^0.5.1",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.8.2",
+ "path-is-inside": "^1.0.2",
+ "progress": "^2.0.0",
+ "regexpp": "^2.0.1",
+ "semver": "^5.5.1",
+ "strip-ansi": "^4.0.0",
+ "strip-json-comments": "^2.0.1",
+ "table": "^5.2.3",
+ "text-table": "^0.2.0"
+ },
+ "dependencies": {
+ "acorn-jsx": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npm.taobao.org/acorn-jsx/download/acorn-jsx-5.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn-jsx%2Fdownload%2Facorn-jsx-5.0.2.tgz",
+ "integrity": "sha1-hLaOpEs3PE+GhgI6VR9hoht8Sk8=",
+ "dev": true
+ },
+ "chardet": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npm.taobao.org/chardet/download/chardet-0.7.0.tgz",
+ "integrity": "sha1-kAlISfCTfy7twkJdDSip5fDLrZ4=",
+ "dev": true
+ },
+ "doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/doctrine/download/doctrine-3.0.0.tgz",
+ "integrity": "sha1-rd6+rXKmV023g2OdyHoSF3OXOWE=",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2"
+ }
+ },
+ "espree": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npm.taobao.org/espree/download/espree-5.0.1.tgz",
+ "integrity": "sha1-XWUm+k/H8HiKXPdbFfMDI+L4H3o=",
+ "dev": true,
+ "requires": {
+ "acorn": "^6.0.7",
+ "acorn-jsx": "^5.0.0",
+ "eslint-visitor-keys": "^1.0.0"
+ }
+ },
+ "external-editor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npm.taobao.org/external-editor/download/external-editor-3.1.0.tgz?cache=0&sync_timestamp=1562602052556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexternal-editor%2Fdownload%2Fexternal-editor-3.1.0.tgz",
+ "integrity": "sha1-ywP3QL764D6k0oPK7SdBqD8zVJU=",
+ "dev": true,
+ "requires": {
+ "chardet": "^0.7.0",
+ "iconv-lite": "^0.4.24",
+ "tmp": "^0.0.33"
+ }
+ },
+ "file-entry-cache": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npm.taobao.org/file-entry-cache/download/file-entry-cache-5.0.1.tgz",
+ "integrity": "sha1-yg9u+m3T1WEzP7FFFQZcL6/fQ5w=",
+ "dev": true,
+ "requires": {
+ "flat-cache": "^2.0.1"
+ }
+ },
+ "flat-cache": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/flat-cache/download/flat-cache-2.0.1.tgz",
+ "integrity": "sha1-XSltbwS9pEpGMKMBQTvbwuwIXsA=",
+ "dev": true,
+ "requires": {
+ "flatted": "^2.0.0",
+ "rimraf": "2.6.3",
+ "write": "1.0.3"
+ }
+ },
+ "ignore": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npm.taobao.org/ignore/download/ignore-4.0.6.tgz",
+ "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=",
+ "dev": true
+ },
+ "import-fresh": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npm.taobao.org/import-fresh/download/import-fresh-3.1.0.tgz?cache=0&sync_timestamp=1561888919431&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-3.1.0.tgz",
+ "integrity": "sha1-bTP6Hc7235MPrgA0RvM0Fa+QURg=",
+ "dev": true,
+ "requires": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ }
+ },
+ "inquirer": {
+ "version": "6.5.2",
+ "resolved": "https://registry.npm.taobao.org/inquirer/download/inquirer-6.5.2.tgz",
+ "integrity": "sha1-rVCUI3XQNtMn/1KMCL1fqwiZKMo=",
+ "dev": true,
+ "requires": {
+ "ansi-escapes": "^3.2.0",
+ "chalk": "^2.4.2",
+ "cli-cursor": "^2.1.0",
+ "cli-width": "^2.0.0",
+ "external-editor": "^3.0.3",
+ "figures": "^2.0.0",
+ "lodash": "^4.17.12",
+ "mute-stream": "0.0.7",
+ "run-async": "^2.2.0",
+ "rxjs": "^6.4.0",
+ "string-width": "^2.1.0",
+ "strip-ansi": "^5.1.0",
+ "through": "^2.3.6"
+ },
+ "dependencies": {
+ "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"
+ }
+ }
+ }
+ },
+ "regexpp": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/regexpp/download/regexpp-2.0.1.tgz?cache=0&sync_timestamp=1567160849322&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpp%2Fdownload%2Fregexpp-2.0.1.tgz",
+ "integrity": "sha1-jRnTHPYySCtYkEn4KB+T28uk0H8=",
+ "dev": true
+ },
+ "resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-4.0.0.tgz",
+ "integrity": "sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=",
+ "dev": true
+ },
+ "rimraf": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.6.3.tgz",
+ "integrity": "sha1-stEE/g2Psnz54KHNqCYt04M8bKs=",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "slice-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/slice-ansi/download/slice-ansi-2.1.0.tgz",
+ "integrity": "sha1-ys12k0YaY3pXiNkqfdT7oGjoFjY=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.0",
+ "astral-regex": "^1.0.0",
+ "is-fullwidth-code-point": "^2.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ }
+ }
+ },
+ "table": {
+ "version": "5.4.6",
+ "resolved": "https://registry.npm.taobao.org/table/download/table-5.4.6.tgz",
+ "integrity": "sha1-EpLRlQDOP4YFOwXw6Ofko7shB54=",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.10.2",
+ "lodash": "^4.17.14",
+ "slice-ansi": "^2.1.0",
+ "string-width": "^3.0.0"
+ },
+ "dependencies": {
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz",
+ "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ }
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "write": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npm.taobao.org/write/download/write-1.0.3.tgz",
+ "integrity": "sha1-CADhRSO5I6OH5BUSPIZWFqrg9cM=",
+ "dev": true,
+ "requires": {
+ "mkdirp": "^0.5.1"
+ }
+ }
+ }
+ },
+ "eslint-config-prettier": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npm.taobao.org/eslint-config-prettier/download/eslint-config-prettier-3.6.0.tgz",
+ "integrity": "sha1-jKP/rEvW7u9iOgZR+ddUkA4+whc=",
+ "dev": true,
+ "requires": {
+ "get-stdin": "^6.0.0"
+ }
+ },
+ "eslint-loader": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npm.taobao.org/eslint-loader/download/eslint-loader-2.2.1.tgz",
+ "integrity": "sha1-KLnBLaVAV68IReKmEScBova/gzc=",
+ "dev": true,
+ "requires": {
+ "loader-fs-cache": "^1.0.0",
+ "loader-utils": "^1.0.2",
+ "object-assign": "^4.0.1",
+ "object-hash": "^1.1.4",
+ "rimraf": "^2.6.1"
+ }
+ },
+ "eslint-plugin-prettier": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npm.taobao.org/eslint-plugin-prettier/download/eslint-plugin-prettier-3.1.1.tgz",
+ "integrity": "sha1-UHuFYkENAqA/DdyUnGFvh3hS8ro=",
+ "dev": true,
+ "requires": {
+ "prettier-linter-helpers": "^1.0.0"
+ }
+ },
+ "eslint-plugin-vue": {
+ "version": "5.2.3",
+ "resolved": "https://registry.npm.taobao.org/eslint-plugin-vue/download/eslint-plugin-vue-5.2.3.tgz",
+ "integrity": "sha1-PudZfYI7VHiASy/rqYY7G3QnOWE=",
+ "dev": true,
+ "requires": {
+ "vue-eslint-parser": "^5.0.0"
+ },
+ "dependencies": {
+ "acorn-jsx": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npm.taobao.org/acorn-jsx/download/acorn-jsx-5.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn-jsx%2Fdownload%2Facorn-jsx-5.0.2.tgz",
+ "integrity": "sha1-hLaOpEs3PE+GhgI6VR9hoht8Sk8=",
+ "dev": true
+ },
+ "espree": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npm.taobao.org/espree/download/espree-4.1.0.tgz",
+ "integrity": "sha1-co1UUeD9FWwEOEp62J7VH/VOsl8=",
+ "dev": true,
+ "requires": {
+ "acorn": "^6.0.2",
+ "acorn-jsx": "^5.0.0",
+ "eslint-visitor-keys": "^1.0.0"
+ }
+ },
+ "vue-eslint-parser": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npm.taobao.org/vue-eslint-parser/download/vue-eslint-parser-5.0.0.tgz",
+ "integrity": "sha1-APTk2pTsl0uCGib/DtD3p4QCuKE=",
+ "dev": true,
+ "requires": {
+ "debug": "^4.1.0",
+ "eslint-scope": "^4.0.0",
+ "eslint-visitor-keys": "^1.0.0",
+ "espree": "^4.1.0",
+ "esquery": "^1.0.1",
+ "lodash": "^4.17.11"
+ }
+ }
+ }
+ },
+ "eslint-scope": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-4.0.3.tgz",
+ "integrity": "sha1-ygODMxD2iJoyZHgaqC5j65z+eEg=",
+ "dev": true,
+ "requires": {
+ "esrecurse": "^4.1.0",
+ "estraverse": "^4.1.1"
+ }
+ },
+ "eslint-utils": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npm.taobao.org/eslint-utils/download/eslint-utils-1.4.2.tgz",
+ "integrity": "sha1-FmpRgO9qt+tGLxYv0ObyRj1zCas=",
+ "dev": true,
+ "requires": {
+ "eslint-visitor-keys": "^1.0.0"
+ }
+ },
+ "eslint-visitor-keys": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npm.taobao.org/eslint-visitor-keys/download/eslint-visitor-keys-1.1.0.tgz?cache=0&sync_timestamp=1565705483230&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-1.1.0.tgz",
+ "integrity": "sha1-4qgs6oT/JGrW+1f5veW0ZiFFnsI=",
+ "dev": true
+ },
+ "espree": {
+ "version": "3.5.4",
+ "resolved": "https://registry.npm.taobao.org/espree/download/espree-3.5.4.tgz",
+ "integrity": "sha1-sPRHGHyKi+2US4FaZgvd9d610ac=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "acorn": "^5.5.0",
+ "acorn-jsx": "^3.0.0"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "5.7.3",
+ "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-5.7.3.tgz",
+ "integrity": "sha1-Z6ojG/iBKXS4UjWpZ3Hra9B+onk=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "esprima": {
+ "version": "4.0.1",
+ "resolved": "http://registry.npm.taobao.org/esprima/download/esprima-4.0.1.tgz",
+ "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=",
+ "dev": true
+ },
+ "esquery": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/esquery/download/esquery-1.0.1.tgz",
+ "integrity": "sha1-QGxRZYsfWZGl+bYrHcJbAOPlxwg=",
+ "dev": true,
+ "requires": {
+ "estraverse": "^4.0.0"
+ }
+ },
+ "esrecurse": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npm.taobao.org/esrecurse/download/esrecurse-4.2.1.tgz",
+ "integrity": "sha1-AHo7n9vCs7uH5IeeoZyS/b05Qs8=",
+ "dev": true,
+ "requires": {
+ "estraverse": "^4.1.0"
+ }
+ },
+ "estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npm.taobao.org/estraverse/download/estraverse-4.3.0.tgz",
+ "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=",
+ "dev": true
+ },
+ "esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npm.taobao.org/esutils/download/esutils-2.0.3.tgz",
+ "integrity": "sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=",
+ "dev": true
+ },
+ "etag": {
+ "version": "1.8.1",
+ "resolved": "http://registry.npm.taobao.org/etag/download/etag-1.8.1.tgz",
+ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
+ "dev": true
+ },
+ "event-pubsub": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npm.taobao.org/event-pubsub/download/event-pubsub-4.3.0.tgz",
+ "integrity": "sha1-9o2Ba8KfHsAsU53FjI3UDOcss24=",
+ "dev": true
+ },
+ "eventemitter3": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/eventemitter3/download/eventemitter3-4.0.0.tgz?cache=0&sync_timestamp=1560950873670&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feventemitter3%2Fdownload%2Feventemitter3-4.0.0.tgz",
+ "integrity": "sha1-1lF2FjiH7lnzhtZMgmELaWpKdOs=",
+ "dev": true
+ },
+ "events": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/events/download/events-3.0.0.tgz",
+ "integrity": "sha1-mgoN+vYok9krh1uPJpjKQRSXPog=",
+ "dev": true
+ },
+ "eventsource": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npm.taobao.org/eventsource/download/eventsource-1.0.7.tgz",
+ "integrity": "sha1-j7xyyT/NNAiAkLwKTmT0tc7m2NA=",
+ "dev": true,
+ "requires": {
+ "original": "^1.0.0"
+ }
+ },
+ "evp_bytestokey": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npm.taobao.org/evp_bytestokey/download/evp_bytestokey-1.0.3.tgz",
+ "integrity": "sha1-f8vbGY3HGVlDLv4ThCaE4FJaywI=",
+ "dev": true,
+ "requires": {
+ "md5.js": "^1.3.4",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "execa": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/execa/download/execa-1.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-1.0.0.tgz",
+ "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^6.0.0",
+ "get-stream": "^4.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
+ }
+ },
+ "expand-brackets": {
+ "version": "2.1.4",
+ "resolved": "http://registry.npm.taobao.org/expand-brackets/download/expand-brackets-2.1.4.tgz",
+ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+ "dev": true,
+ "requires": {
+ "debug": "^2.3.3",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "posix-character-classes": "^0.1.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "http://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz",
+ "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "express": {
+ "version": "4.17.1",
+ "resolved": "https://registry.npm.taobao.org/express/download/express-4.17.1.tgz",
+ "integrity": "sha1-RJH8OGBc9R+GKdOcK10Cb5ikwTQ=",
+ "dev": true,
+ "requires": {
+ "accepts": "~1.3.7",
+ "array-flatten": "1.1.1",
+ "body-parser": "1.19.0",
+ "content-disposition": "0.5.3",
+ "content-type": "~1.0.4",
+ "cookie": "0.4.0",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "finalhandler": "~1.1.2",
+ "fresh": "0.5.2",
+ "merge-descriptors": "1.0.1",
+ "methods": "~1.1.2",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "path-to-regexp": "0.1.7",
+ "proxy-addr": "~2.0.5",
+ "qs": "6.7.0",
+ "range-parser": "~1.2.1",
+ "safe-buffer": "5.1.2",
+ "send": "0.17.1",
+ "serve-static": "1.14.1",
+ "setprototypeof": "1.1.1",
+ "statuses": "~1.5.0",
+ "type-is": "~1.6.18",
+ "utils-merge": "1.0.1",
+ "vary": "~1.1.2"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "http://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz",
+ "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-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
+ }
+ }
+ },
+ "extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npm.taobao.org/extend/download/extend-3.0.2.tgz",
+ "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=",
+ "dev": true
+ },
+ "extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-3.0.2.tgz",
+ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+ "dev": true,
+ "requires": {
+ "assign-symbols": "^1.0.0",
+ "is-extendable": "^1.0.1"
+ },
+ "dependencies": {
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "http://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz",
+ "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=",
+ "dev": true,
+ "requires": {
+ "is-plain-object": "^2.0.4"
+ }
+ }
+ }
+ },
+ "external-editor": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npm.taobao.org/external-editor/download/external-editor-2.2.0.tgz?cache=0&sync_timestamp=1562602052556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexternal-editor%2Fdownload%2Fexternal-editor-2.2.0.tgz",
+ "integrity": "sha1-BFURz9jRM/OEZnPRBHwVTiFK09U=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "chardet": "^0.4.0",
+ "iconv-lite": "^0.4.17",
+ "tmp": "^0.0.33"
+ }
+ },
+ "extglob": {
+ "version": "2.0.4",
+ "resolved": "http://registry.npm.taobao.org/extglob/download/extglob-2.0.4.tgz",
+ "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=",
+ "dev": true,
+ "requires": {
+ "array-unique": "^0.3.2",
+ "define-property": "^1.0.0",
+ "expand-brackets": "^2.1.4",
+ "extend-shallow": "^2.0.1",
+ "fragment-cache": "^0.2.1",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "http://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"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "http://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": "http://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": "http://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"
+ }
+ }
+ }
+ },
+ "extsprintf": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npm.taobao.org/extsprintf/download/extsprintf-1.3.0.tgz",
+ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
+ "dev": true
+ },
+ "fast-deep-equal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-2.0.1.tgz",
+ "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
+ "dev": true
+ },
+ "fast-diff": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npm.taobao.org/fast-diff/download/fast-diff-1.2.0.tgz",
+ "integrity": "sha1-c+4RmC2Gyq95WYKNUZz+kn+sXwM=",
+ "dev": true
+ },
+ "fast-glob": {
+ "version": "2.2.7",
+ "resolved": "https://registry.npm.taobao.org/fast-glob/download/fast-glob-2.2.7.tgz",
+ "integrity": "sha1-aVOFfDr6R1//ku5gFdUtpwpM050=",
+ "dev": true,
+ "requires": {
+ "@mrmlnc/readdir-enhanced": "^2.2.1",
+ "@nodelib/fs.stat": "^1.1.2",
+ "glob-parent": "^3.1.0",
+ "is-glob": "^4.0.0",
+ "merge2": "^1.2.3",
+ "micromatch": "^3.1.10"
+ }
+ },
+ "fast-json-stable-stringify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.0.0.tgz",
+ "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
+ "dev": true
+ },
+ "fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npm.taobao.org/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
+ "dev": true
+ },
+ "fastparse": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npm.taobao.org/fastparse/download/fastparse-1.1.2.tgz",
+ "integrity": "sha1-kXKMWllC7O2FMSg8eUQe5BIsNak=",
+ "dev": true
+ },
+ "faye-websocket": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.10.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffaye-websocket%2Fdownload%2Ffaye-websocket-0.10.0.tgz",
+ "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=",
+ "dev": true,
+ "requires": {
+ "websocket-driver": ">=0.5.1"
+ }
+ },
+ "fecha": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npm.taobao.org/fecha/download/fecha-3.0.3.tgz",
+ "integrity": "sha1-+rvUFkl2SaQsJNNL+nJrV5IDoeI="
+ },
+ "figgy-pudding": {
+ "version": "3.5.1",
+ "resolved": "https://registry.npm.taobao.org/figgy-pudding/download/figgy-pudding-3.5.1.tgz",
+ "integrity": "sha1-hiRwESkBxyeg5JWoB0S9W6odZ5A=",
+ "dev": true
+ },
+ "figures": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/figures/download/figures-2.0.0.tgz",
+ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "^1.0.5"
+ }
+ },
+ "file-entry-cache": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/file-entry-cache/download/file-entry-cache-2.0.0.tgz",
+ "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "flat-cache": "^1.2.1",
+ "object-assign": "^4.0.1"
+ }
+ },
+ "file-loader": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npm.taobao.org/file-loader/download/file-loader-3.0.1.tgz",
+ "integrity": "sha1-+OC6C1mZGLUa3+RdZtHnca1WD6o=",
+ "dev": true,
+ "requires": {
+ "loader-utils": "^1.0.2",
+ "schema-utils": "^1.0.0"
+ }
+ },
+ "filesize": {
+ "version": "3.6.1",
+ "resolved": "https://registry.npm.taobao.org/filesize/download/filesize-3.6.1.tgz?cache=0&sync_timestamp=1570604854141&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffilesize%2Fdownload%2Ffilesize-3.6.1.tgz",
+ "integrity": "sha1-CQuz7gG2+AGoqL6Z0xcQs0Irsxc=",
+ "dev": true
+ },
+ "fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz",
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "finalhandler": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npm.taobao.org/finalhandler/download/finalhandler-1.1.2.tgz",
+ "integrity": "sha1-t+fQAP/RGTjQ/bBTUG9uur6fWH0=",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "statuses": "~1.5.0",
+ "unpipe": "~1.0.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "http://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz",
+ "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "find-babel-config": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npm.taobao.org/find-babel-config/download/find-babel-config-1.2.0.tgz",
+ "integrity": "sha1-qbezF+tbmGDNqdVHQKjIM3oig6I=",
+ "dev": true,
+ "requires": {
+ "json5": "^0.5.1",
+ "path-exists": "^3.0.0"
+ },
+ "dependencies": {
+ "json5": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npm.taobao.org/json5/download/json5-0.5.1.tgz",
+ "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
+ "dev": true
+ }
+ }
+ },
+ "find-cache-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-2.1.0.tgz",
+ "integrity": "sha1-jQ+UzRP+Q8bHwmGg2GEVypGMBfc=",
+ "dev": true,
+ "requires": {
+ "commondir": "^1.0.1",
+ "make-dir": "^2.0.0",
+ "pkg-dir": "^3.0.0"
+ }
+ },
+ "find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "dev": true,
+ "requires": {
+ "locate-path": "^2.0.0"
+ }
+ },
+ "flat-cache": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npm.taobao.org/flat-cache/download/flat-cache-1.3.4.tgz",
+ "integrity": "sha1-LC73dSXMKSkAff/6HdMUqpyd7m8=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "circular-json": "^0.3.1",
+ "graceful-fs": "^4.1.2",
+ "rimraf": "~2.6.2",
+ "write": "^0.2.1"
+ },
+ "dependencies": {
+ "rimraf": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.6.3.tgz",
+ "integrity": "sha1-stEE/g2Psnz54KHNqCYt04M8bKs=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ }
+ }
+ },
+ "flatted": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/flatted/download/flatted-2.0.1.tgz?cache=0&sync_timestamp=1561466276595&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fflatted%2Fdownload%2Fflatted-2.0.1.tgz",
+ "integrity": "sha1-aeV8qo8OrLwoHS4stFjUb9tEngg=",
+ "dev": true
+ },
+ "flush-write-stream": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npm.taobao.org/flush-write-stream/download/flush-write-stream-1.1.1.tgz",
+ "integrity": "sha1-jdfYc6G6vCB9lOrQwuDkQnbr8ug=",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.3.6"
+ }
+ },
+ "follow-redirects": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.9.0.tgz",
+ "integrity": "sha1-jVvNxltxCP4VCGScecEtcy3O208=",
+ "dev": true,
+ "requires": {
+ "debug": "^3.0.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.6",
+ "resolved": "http://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz",
+ "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ }
+ }
+ },
+ "for-in": {
+ "version": "1.0.2",
+ "resolved": "http://registry.npm.taobao.org/for-in/download/for-in-1.0.2.tgz",
+ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
+ "dev": true
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz",
+ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
+ "dev": true
+ },
+ "form-data": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npm.taobao.org/form-data/download/form-data-2.3.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fform-data%2Fdownload%2Fform-data-2.3.3.tgz",
+ "integrity": "sha1-3M5SwF9kTymManq5Nr1yTO/786Y=",
+ "dev": true,
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.6",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "forwarded": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npm.taobao.org/forwarded/download/forwarded-0.1.2.tgz",
+ "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=",
+ "dev": true
+ },
+ "fragment-cache": {
+ "version": "0.2.1",
+ "resolved": "http://registry.npm.taobao.org/fragment-cache/download/fragment-cache-0.2.1.tgz",
+ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
+ "dev": true,
+ "requires": {
+ "map-cache": "^0.2.2"
+ }
+ },
+ "fresh": {
+ "version": "0.5.2",
+ "resolved": "http://registry.npm.taobao.org/fresh/download/fresh-0.5.2.tgz",
+ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
+ "dev": true
+ },
+ "from2": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npm.taobao.org/from2/download/from2-2.3.0.tgz",
+ "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0"
+ }
+ },
+ "fs-extra": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npm.taobao.org/fs-extra/download/fs-extra-7.0.1.tgz",
+ "integrity": "sha1-TxicRKoSO4lfcigE9V6iPq3DSOk=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ }
+ },
+ "fs-write-stream-atomic": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npm.taobao.org/fs-write-stream-atomic/download/fs-write-stream-atomic-1.0.10.tgz",
+ "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "iferr": "^0.1.5",
+ "imurmurhash": "^0.1.4",
+ "readable-stream": "1 || 2"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "http://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+ "dev": true
+ },
+ "fsevents": {
+ "version": "1.2.9",
+ "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.9.tgz?cache=0&sync_timestamp=1569891146996&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-1.2.9.tgz",
+ "integrity": "sha1-P17WZYPM1vQAtaANtvfoYTY+OI8=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "nan": "^2.12.1",
+ "node-pre-gyp": "^0.12.0"
+ },
+ "dependencies": {
+ "abbrev": {
+ "version": "1.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "aproba": {
+ "version": "1.2.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "are-we-there-yet": {
+ "version": "1.1.5",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "delegates": "^1.0.0",
+ "readable-stream": "^2.0.6"
+ }
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "chownr": {
+ "version": "1.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "code-point-at": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "console-control-strings": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "debug": {
+ "version": "4.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "deep-extend": {
+ "version": "0.6.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "delegates": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "detect-libc": {
+ "version": "1.0.3",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "fs-minipass": {
+ "version": "1.2.5",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "minipass": "^2.2.1"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "gauge": {
+ "version": "2.7.4",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "aproba": "^1.0.3",
+ "console-control-strings": "^1.0.0",
+ "has-unicode": "^2.0.0",
+ "object-assign": "^4.1.0",
+ "signal-exit": "^3.0.0",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wide-align": "^1.1.0"
+ }
+ },
+ "glob": {
+ "version": "7.1.3",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "has-unicode": {
+ "version": "2.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "iconv-lite": {
+ "version": "0.4.24",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ },
+ "ignore-walk": {
+ "version": "3.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "minimatch": "^3.0.4"
+ }
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "ini": {
+ "version": "1.3.5",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "minipass": {
+ "version": "2.3.5",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.0"
+ }
+ },
+ "minizlib": {
+ "version": "1.2.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "minipass": "^2.2.1"
+ }
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ },
+ "ms": {
+ "version": "2.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "needle": {
+ "version": "2.3.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "debug": "^4.1.0",
+ "iconv-lite": "^0.4.4",
+ "sax": "^1.2.4"
+ }
+ },
+ "node-pre-gyp": {
+ "version": "0.12.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "detect-libc": "^1.0.2",
+ "mkdirp": "^0.5.1",
+ "needle": "^2.2.1",
+ "nopt": "^4.0.1",
+ "npm-packlist": "^1.1.6",
+ "npmlog": "^4.0.2",
+ "rc": "^1.2.7",
+ "rimraf": "^2.6.1",
+ "semver": "^5.3.0",
+ "tar": "^4"
+ }
+ },
+ "nopt": {
+ "version": "4.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "abbrev": "1",
+ "osenv": "^0.1.4"
+ }
+ },
+ "npm-bundled": {
+ "version": "1.0.6",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "npm-packlist": {
+ "version": "1.4.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ignore-walk": "^3.0.1",
+ "npm-bundled": "^1.0.1"
+ }
+ },
+ "npmlog": {
+ "version": "4.1.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "are-we-there-yet": "~1.1.2",
+ "console-control-strings": "~1.1.0",
+ "gauge": "~2.7.3",
+ "set-blocking": "~2.0.0"
+ }
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "once": {
+ "version": "1.4.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "os-homedir": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "osenv": {
+ "version": "0.1.5",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.0"
+ }
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "process-nextick-args": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "rc": {
+ "version": "1.2.8",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "bundled": true,
+ "dev": true,
+ "optional": 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"
+ }
+ },
+ "rimraf": {
+ "version": "2.6.3",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "sax": {
+ "version": "1.2.4",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "semver": {
+ "version": "5.7.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "tar": {
+ "version": "4.4.8",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "chownr": "^1.1.1",
+ "fs-minipass": "^1.2.5",
+ "minipass": "^2.3.4",
+ "minizlib": "^1.1.1",
+ "mkdirp": "^0.5.0",
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.2"
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "wide-align": {
+ "version": "1.1.3",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "string-width": "^1.0.2 || 2"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "yallist": {
+ "version": "3.0.3",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz",
+ "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=",
+ "dev": true
+ },
+ "functional-red-black-tree": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/functional-red-black-tree/download/functional-red-black-tree-1.0.1.tgz",
+ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
+ "dev": true
+ },
+ "get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "http://registry.npm.taobao.org/get-caller-file/download/get-caller-file-2.0.5.tgz",
+ "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=",
+ "dev": true
+ },
+ "get-stdin": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npm.taobao.org/get-stdin/download/get-stdin-6.0.0.tgz",
+ "integrity": "sha1-ngm/cSs2CrkiXoEgSPcf3pyJZXs=",
+ "dev": true
+ },
+ "get-stream": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz",
+ "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=",
+ "dev": true,
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ },
+ "get-value": {
+ "version": "2.0.6",
+ "resolved": "http://registry.npm.taobao.org/get-value/download/get-value-2.0.6.tgz",
+ "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
+ "dev": true
+ },
+ "getpass": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npm.taobao.org/getpass/download/getpass-0.1.7.tgz",
+ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "^1.0.0"
+ }
+ },
+ "gl-matrix": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npm.taobao.org/gl-matrix/download/gl-matrix-3.3.0.tgz",
+ "integrity": "sha1-Iy7vYLHIswooy751ssr2xI/WNYs="
+ },
+ "glob": {
+ "version": "7.1.4",
+ "resolved": "https://registry.npm.taobao.org/glob/download/glob-7.1.4.tgz",
+ "integrity": "sha1-qmCKL2xXetNX4a5aXCbZqNGWklU=",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "glob-parent": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz",
+ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+ "dev": true,
+ "requires": {
+ "is-glob": "^3.1.0",
+ "path-dirname": "^1.0.0"
+ },
+ "dependencies": {
+ "is-glob": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz",
+ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^2.1.0"
+ }
+ }
+ }
+ },
+ "glob-to-regexp": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npm.taobao.org/glob-to-regexp/download/glob-to-regexp-0.3.0.tgz",
+ "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=",
+ "dev": true
+ },
+ "globals": {
+ "version": "11.12.0",
+ "resolved": "https://registry.npm.taobao.org/globals/download/globals-11.12.0.tgz",
+ "integrity": "sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=",
+ "dev": true
+ },
+ "globby": {
+ "version": "9.2.0",
+ "resolved": "https://registry.npm.taobao.org/globby/download/globby-9.2.0.tgz?cache=0&sync_timestamp=1562335642755&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-9.2.0.tgz",
+ "integrity": "sha1-/QKacGxwPSm90XD0tts6P3p8tj0=",
+ "dev": true,
+ "requires": {
+ "@types/glob": "^7.1.1",
+ "array-union": "^1.0.2",
+ "dir-glob": "^2.2.2",
+ "fast-glob": "^2.2.6",
+ "glob": "^7.1.3",
+ "ignore": "^4.0.3",
+ "pify": "^4.0.1",
+ "slash": "^2.0.0"
+ },
+ "dependencies": {
+ "ignore": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npm.taobao.org/ignore/download/ignore-4.0.6.tgz",
+ "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=",
+ "dev": true
+ }
+ }
+ },
+ "graceful-fs": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.2.2.tgz",
+ "integrity": "sha1-bwlSYF0BQMHP2xOO0AV3W5LWewI=",
+ "dev": true
+ },
+ "graphlib": {
+ "version": "2.1.8",
+ "resolved": "https://registry.npm.taobao.org/graphlib/download/graphlib-2.1.8.tgz",
+ "integrity": "sha1-V2HUFHN4cAhMkux7XbywWSydNdo=",
+ "requires": {
+ "lodash": "^4.17.15"
+ }
+ },
+ "gzip-size": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npm.taobao.org/gzip-size/download/gzip-size-5.1.1.tgz",
+ "integrity": "sha1-y5vuaS+HwGErIyhAqHOQTkwTUnQ=",
+ "dev": true,
+ "requires": {
+ "duplexer": "^0.1.1",
+ "pify": "^4.0.1"
+ }
+ },
+ "handle-thing": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/handle-thing/download/handle-thing-2.0.0.tgz",
+ "integrity": "sha1-DgOWlf9QyT/CiFV9aW88HcZ3Z1Q=",
+ "dev": true
+ },
+ "har-schema": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/har-schema/download/har-schema-2.0.0.tgz",
+ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
+ "dev": true
+ },
+ "har-validator": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npm.taobao.org/har-validator/download/har-validator-5.1.3.tgz",
+ "integrity": "sha1-HvievT5JllV2de7ZiTEQ3DUPoIA=",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.5.5",
+ "har-schema": "^2.0.0"
+ }
+ },
+ "has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npm.taobao.org/has/download/has-1.0.3.tgz",
+ "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1"
+ }
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/has-ansi/download/has-ansi-2.0.0.tgz",
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ },
+ "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
+ }
+ }
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ },
+ "has-symbols": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.0.tgz",
+ "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
+ "dev": true
+ },
+ "has-value": {
+ "version": "1.0.0",
+ "resolved": "http://registry.npm.taobao.org/has-value/download/has-value-1.0.0.tgz",
+ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
+ "dev": true,
+ "requires": {
+ "get-value": "^2.0.6",
+ "has-values": "^1.0.0",
+ "isobject": "^3.0.0"
+ }
+ },
+ "has-values": {
+ "version": "1.0.0",
+ "resolved": "http://registry.npm.taobao.org/has-values/download/has-values-1.0.0.tgz",
+ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
+ "dev": true,
+ "requires": {
+ "is-number": "^3.0.0",
+ "kind-of": "^4.0.0"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "4.0.0",
+ "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-4.0.0.tgz",
+ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "hash-base": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npm.taobao.org/hash-base/download/hash-base-3.0.4.tgz",
+ "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "hash-sum": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz",
+ "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=",
+ "dev": true
+ },
+ "hash.js": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npm.taobao.org/hash.js/download/hash.js-1.1.7.tgz",
+ "integrity": "sha1-C6vKU46NTuSg+JiNaIZlN6ADz0I=",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "minimalistic-assert": "^1.0.1"
+ }
+ },
+ "he": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npm.taobao.org/he/download/he-1.2.0.tgz",
+ "integrity": "sha1-hK5l+n6vsWX922FWauFLrwVmTw8=",
+ "dev": true
+ },
+ "hex-color-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npm.taobao.org/hex-color-regex/download/hex-color-regex-1.1.0.tgz",
+ "integrity": "sha1-TAb8y0YC/iYCs8k9+C1+fb8aio4=",
+ "dev": true
+ },
+ "highlight.js": {
+ "version": "9.15.10",
+ "resolved": "https://registry.npm.taobao.org/highlight.js/download/highlight.js-9.15.10.tgz",
+ "integrity": "sha1-exjtdckDSMBF7vntCMoTGaIhmtI=",
+ "dev": true
+ },
+ "hmac-drbg": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/hmac-drbg/download/hmac-drbg-1.0.1.tgz",
+ "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
+ "dev": true,
+ "requires": {
+ "hash.js": "^1.0.3",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.1"
+ }
+ },
+ "hoopy": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npm.taobao.org/hoopy/download/hoopy-0.1.4.tgz",
+ "integrity": "sha1-YJIH1mEQADOpqUAq096mdzgcGx0=",
+ "dev": true
+ },
+ "hosted-git-info": {
+ "version": "2.8.5",
+ "resolved": "https://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.8.5.tgz?cache=0&sync_timestamp=1570493570687&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhosted-git-info%2Fdownload%2Fhosted-git-info-2.8.5.tgz",
+ "integrity": "sha1-dZz88sTRVq3lmwst+r3cQqa5xww=",
+ "dev": true
+ },
+ "hpack.js": {
+ "version": "2.1.6",
+ "resolved": "https://registry.npm.taobao.org/hpack.js/download/hpack.js-2.1.6.tgz",
+ "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "obuf": "^1.0.0",
+ "readable-stream": "^2.0.1",
+ "wbuf": "^1.1.0"
+ }
+ },
+ "hsl-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/hsl-regex/download/hsl-regex-1.0.0.tgz",
+ "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=",
+ "dev": true
+ },
+ "hsla-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/hsla-regex/download/hsla-regex-1.0.0.tgz",
+ "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=",
+ "dev": true
+ },
+ "html-comment-regex": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npm.taobao.org/html-comment-regex/download/html-comment-regex-1.1.2.tgz",
+ "integrity": "sha1-l9RoiutcgYhqNk+qDK0d2hTUM6c=",
+ "dev": true
+ },
+ "html-entities": {
+ "version": "1.2.1",
+ "resolved": "http://registry.npm.taobao.org/html-entities/download/html-entities-1.2.1.tgz",
+ "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=",
+ "dev": true
+ },
+ "html-minifier": {
+ "version": "3.5.21",
+ "resolved": "https://registry.npm.taobao.org/html-minifier/download/html-minifier-3.5.21.tgz",
+ "integrity": "sha1-0AQOBUcw41TbAIRjWTGUAVIS0gw=",
+ "dev": true,
+ "requires": {
+ "camel-case": "3.0.x",
+ "clean-css": "4.2.x",
+ "commander": "2.17.x",
+ "he": "1.2.x",
+ "param-case": "2.1.x",
+ "relateurl": "0.2.x",
+ "uglify-js": "3.4.x"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "2.17.1",
+ "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.17.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.17.1.tgz",
+ "integrity": "sha1-vXerfebelCBc6sxy8XFtKfIKd78=",
+ "dev": true
+ }
+ }
+ },
+ "html-tags": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/html-tags/download/html-tags-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-tags%2Fdownload%2Fhtml-tags-2.0.0.tgz",
+ "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=",
+ "dev": true
+ },
+ "html-webpack-plugin": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npm.taobao.org/html-webpack-plugin/download/html-webpack-plugin-3.2.0.tgz?cache=0&sync_timestamp=1563437816811&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-webpack-plugin%2Fdownload%2Fhtml-webpack-plugin-3.2.0.tgz",
+ "integrity": "sha1-sBq71yOsqqeze2r0SS69oD2d03s=",
+ "dev": true,
+ "requires": {
+ "html-minifier": "^3.2.3",
+ "loader-utils": "^0.2.16",
+ "lodash": "^4.17.3",
+ "pretty-error": "^2.0.2",
+ "tapable": "^1.0.0",
+ "toposort": "^1.0.0",
+ "util.promisify": "1.0.0"
+ },
+ "dependencies": {
+ "big.js": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npm.taobao.org/big.js/download/big.js-3.2.0.tgz",
+ "integrity": "sha1-pfwpi4G54Nyi5FiCR4S2XFK6WI4=",
+ "dev": true
+ },
+ "json5": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npm.taobao.org/json5/download/json5-0.5.1.tgz",
+ "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
+ "dev": true
+ },
+ "loader-utils": {
+ "version": "0.2.17",
+ "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-0.2.17.tgz",
+ "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=",
+ "dev": true,
+ "requires": {
+ "big.js": "^3.1.3",
+ "emojis-list": "^2.0.0",
+ "json5": "^0.5.0",
+ "object-assign": "^4.0.1"
+ }
+ }
+ }
+ },
+ "htmlparser2": {
+ "version": "3.10.1",
+ "resolved": "https://registry.npm.taobao.org/htmlparser2/download/htmlparser2-3.10.1.tgz?cache=0&sync_timestamp=1564773692945&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtmlparser2%2Fdownload%2Fhtmlparser2-3.10.1.tgz",
+ "integrity": "sha1-vWedw/WYl7ajS7EHSchVu1OpOS8=",
+ "dev": true,
+ "requires": {
+ "domelementtype": "^1.3.1",
+ "domhandler": "^2.3.0",
+ "domutils": "^1.5.1",
+ "entities": "^1.1.1",
+ "inherits": "^2.0.1",
+ "readable-stream": "^3.1.1"
+ },
+ "dependencies": {
+ "entities": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npm.taobao.org/entities/download/entities-1.1.2.tgz",
+ "integrity": "sha1-vfpzUplmTfr9NFKe1PhSKidf6lY=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.4.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.4.0.tgz",
+ "integrity": "sha1-pRwmdUZY4KPCHb9ZFjvUW6b0R/w=",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "http-deceiver": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npm.taobao.org/http-deceiver/download/http-deceiver-1.2.7.tgz",
+ "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=",
+ "dev": true
+ },
+ "http-errors": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.7.2.tgz?cache=0&sync_timestamp=1561418493658&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.7.2.tgz",
+ "integrity": "sha1-T1ApzxMjnzEDblsuVSkrz7zIXI8=",
+ "dev": true,
+ "requires": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.3",
+ "setprototypeof": "1.1.1",
+ "statuses": ">= 1.5.0 < 2",
+ "toidentifier": "1.0.0"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz?cache=0&sync_timestamp=1560975547815&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "dev": true
+ }
+ }
+ },
+ "http-parser-js": {
+ "version": "0.4.10",
+ "resolved": "https://registry.npm.taobao.org/http-parser-js/download/http-parser-js-0.4.10.tgz",
+ "integrity": "sha1-ksnBN0w1CF912zWexWzCV8u5P6Q=",
+ "dev": true
+ },
+ "http-proxy": {
+ "version": "1.18.0",
+ "resolved": "https://registry.npm.taobao.org/http-proxy/download/http-proxy-1.18.0.tgz?cache=0&sync_timestamp=1568770896103&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-proxy%2Fdownload%2Fhttp-proxy-1.18.0.tgz",
+ "integrity": "sha1-2+VfY+daNH2389mZdPJpKjFKajo=",
+ "dev": true,
+ "requires": {
+ "eventemitter3": "^4.0.0",
+ "follow-redirects": "^1.0.0",
+ "requires-port": "^1.0.0"
+ }
+ },
+ "http-proxy-middleware": {
+ "version": "0.19.1",
+ "resolved": "https://registry.npm.taobao.org/http-proxy-middleware/download/http-proxy-middleware-0.19.1.tgz?cache=0&sync_timestamp=1567540944297&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-proxy-middleware%2Fdownload%2Fhttp-proxy-middleware-0.19.1.tgz",
+ "integrity": "sha1-GDx9xKoUeRUDBkmMIQza+WCApDo=",
+ "dev": true,
+ "requires": {
+ "http-proxy": "^1.17.0",
+ "is-glob": "^4.0.0",
+ "lodash": "^4.17.11",
+ "micromatch": "^3.1.10"
+ }
+ },
+ "http-signature": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npm.taobao.org/http-signature/download/http-signature-1.2.0.tgz",
+ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
+ }
+ },
+ "https-browserify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/https-browserify/download/https-browserify-1.0.0.tgz",
+ "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=",
+ "dev": true
+ },
+ "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"
+ }
+ },
+ "icss-replace-symbols": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npm.taobao.org/icss-replace-symbols/download/icss-replace-symbols-1.1.0.tgz",
+ "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=",
+ "dev": true
+ },
+ "icss-utils": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/icss-utils/download/icss-utils-2.1.0.tgz",
+ "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=",
+ "dev": true,
+ "requires": {
+ "postcss": "^6.0.1"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npm.taobao.org/postcss/download/postcss-6.0.23.tgz",
+ "integrity": "sha1-YcgswyisYOZ3ZF+XkFTrmLwOMyQ=",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "ieee754": {
+ "version": "1.1.13",
+ "resolved": "https://registry.npm.taobao.org/ieee754/download/ieee754-1.1.13.tgz",
+ "integrity": "sha1-7BaFWOlaoYH9h9N/VcMrvLZwi4Q=",
+ "dev": true
+ },
+ "iferr": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npm.taobao.org/iferr/download/iferr-0.1.5.tgz",
+ "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=",
+ "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-cwd": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/import-cwd/download/import-cwd-2.1.0.tgz",
+ "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=",
+ "dev": true,
+ "requires": {
+ "import-from": "^2.1.0"
+ }
+ },
+ "import-fresh": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/import-fresh/download/import-fresh-2.0.0.tgz?cache=0&sync_timestamp=1561888919431&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-2.0.0.tgz",
+ "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=",
+ "dev": true,
+ "requires": {
+ "caller-path": "^2.0.0",
+ "resolve-from": "^3.0.0"
+ },
+ "dependencies": {
+ "caller-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/caller-path/download/caller-path-2.0.0.tgz",
+ "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=",
+ "dev": true,
+ "requires": {
+ "caller-callsite": "^2.0.0"
+ }
+ },
+ "resolve-from": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz",
+ "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
+ "dev": true
+ }
+ }
+ },
+ "import-from": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/import-from/download/import-from-2.1.0.tgz",
+ "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=",
+ "dev": true,
+ "requires": {
+ "resolve-from": "^3.0.0"
+ },
+ "dependencies": {
+ "resolve-from": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz",
+ "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
+ "dev": true
+ }
+ }
+ },
+ "import-local": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/import-local/download/import-local-2.0.0.tgz",
+ "integrity": "sha1-VQcL44pZk88Y72236WH1vuXFoJ0=",
+ "dev": true,
+ "requires": {
+ "pkg-dir": "^3.0.0",
+ "resolve-cwd": "^2.0.0"
+ }
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz",
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+ "dev": true
+ },
+ "indexes-of": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/indexes-of/download/indexes-of-1.0.1.tgz",
+ "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=",
+ "dev": true
+ },
+ "infer-owner": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npm.taobao.org/infer-owner/download/infer-owner-1.0.4.tgz",
+ "integrity": "sha1-xM78qo5RBRwqQLos6KPScpWvlGc=",
+ "dev": true
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "http://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dev": true,
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.4.tgz?cache=0&sync_timestamp=1560975547815&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.4.tgz",
+ "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=",
+ "dev": true
+ },
+ "inquirer": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npm.taobao.org/inquirer/download/inquirer-3.3.0.tgz",
+ "integrity": "sha1-ndLyrXZdyrH/BEO0kUQqILoifck=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ansi-escapes": "^3.0.0",
+ "chalk": "^2.0.0",
+ "cli-cursor": "^2.1.0",
+ "cli-width": "^2.0.0",
+ "external-editor": "^2.0.4",
+ "figures": "^2.0.0",
+ "lodash": "^4.3.0",
+ "mute-stream": "0.0.7",
+ "run-async": "^2.2.0",
+ "rx-lite": "^4.0.8",
+ "rx-lite-aggregates": "^4.0.8",
+ "string-width": "^2.1.0",
+ "strip-ansi": "^4.0.0",
+ "through": "^2.3.6"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true,
+ "optional": true
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ }
+ }
+ },
+ "internal-ip": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npm.taobao.org/internal-ip/download/internal-ip-4.3.0.tgz",
+ "integrity": "sha1-hFRSuq2dLKO2nGNaE3rLmg2tCQc=",
+ "dev": true,
+ "requires": {
+ "default-gateway": "^4.2.0",
+ "ipaddr.js": "^1.9.0"
+ },
+ "dependencies": {
+ "default-gateway": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npm.taobao.org/default-gateway/download/default-gateway-4.2.0.tgz?cache=0&sync_timestamp=1565763930901&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefault-gateway%2Fdownload%2Fdefault-gateway-4.2.0.tgz",
+ "integrity": "sha1-FnEEx1AMIRX23WmwpTa7jtcgVSs=",
+ "dev": true,
+ "requires": {
+ "execa": "^1.0.0",
+ "ip-regex": "^2.1.0"
+ }
+ }
+ }
+ },
+ "invariant": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npm.taobao.org/invariant/download/invariant-2.2.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finvariant%2Fdownload%2Finvariant-2.2.4.tgz",
+ "integrity": "sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY=",
+ "dev": true,
+ "requires": {
+ "loose-envify": "^1.0.0"
+ }
+ },
+ "invert-kv": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/invert-kv/download/invert-kv-2.0.0.tgz",
+ "integrity": "sha1-c5P1r6Weyf9fZ6J2INEcIm4+7AI=",
+ "dev": true
+ },
+ "ip": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npm.taobao.org/ip/download/ip-1.1.5.tgz",
+ "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=",
+ "dev": true
+ },
+ "ip-regex": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/ip-regex/download/ip-regex-2.1.0.tgz",
+ "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=",
+ "dev": true
+ },
+ "ipaddr.js": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npm.taobao.org/ipaddr.js/download/ipaddr.js-1.9.0.tgz",
+ "integrity": "sha1-N9905DCg5HVQ/lSi3v4w2KzZX2U=",
+ "dev": true
+ },
+ "is-absolute-url": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-2.1.0.tgz?cache=0&sync_timestamp=1569736493122&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-absolute-url%2Fdownload%2Fis-absolute-url-2.1.0.tgz",
+ "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=",
+ "dev": true
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "http://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-any-array": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npm.taobao.org/is-any-array/download/is-any-array-0.0.3.tgz",
+ "integrity": "sha1-y92McYnUe1OwUJaSRfTvflVVC5s="
+ },
+ "is-arguments": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npm.taobao.org/is-arguments/download/is-arguments-1.0.4.tgz",
+ "integrity": "sha1-P6+WbHy6D/Q3+zH2JQCC/PBEjPM=",
+ "dev": true
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+ "dev": true
+ },
+ "is-binary-path": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz",
+ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
+ "dev": true,
+ "requires": {
+ "binary-extensions": "^1.0.0"
+ }
+ },
+ "is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz",
+ "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=",
+ "dev": true
+ },
+ "is-callable": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npm.taobao.org/is-callable/download/is-callable-1.1.4.tgz",
+ "integrity": "sha1-HhrfIZ4e62hNaR+dagX/DTCiTXU=",
+ "dev": true
+ },
+ "is-ci": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npm.taobao.org/is-ci/download/is-ci-1.2.1.tgz",
+ "integrity": "sha1-43ecjuF/zPQoSI9uKBGH8uYyhBw=",
+ "dev": true,
+ "requires": {
+ "ci-info": "^1.5.0"
+ }
+ },
+ "is-color-stop": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npm.taobao.org/is-color-stop/download/is-color-stop-1.1.0.tgz",
+ "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=",
+ "dev": true,
+ "requires": {
+ "css-color-names": "^0.0.4",
+ "hex-color-regex": "^1.1.0",
+ "hsl-regex": "^1.0.0",
+ "hsla-regex": "^1.0.0",
+ "rgb-regex": "^1.0.1",
+ "rgba-regex": "^1.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "http://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-date-object": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/is-date-object/download/is-date-object-1.0.1.tgz",
+ "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=",
+ "dev": true
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "http://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz",
+ "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz",
+ "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=",
+ "dev": true
+ }
+ }
+ },
+ "is-directory": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npm.taobao.org/is-directory/download/is-directory-0.3.1.tgz",
+ "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=",
+ "dev": true
+ },
+ "is-extendable": {
+ "version": "0.1.1",
+ "resolved": "http://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz",
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
+ "dev": true
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "http://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "is-glob": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz",
+ "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^2.1.1"
+ }
+ },
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "http://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/is-obj/download/is-obj-1.0.1.tgz",
+ "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
+ "dev": true
+ },
+ "is-path-cwd": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npm.taobao.org/is-path-cwd/download/is-path-cwd-2.2.0.tgz?cache=0&sync_timestamp=1562347283002&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-path-cwd%2Fdownload%2Fis-path-cwd-2.2.0.tgz",
+ "integrity": "sha1-Z9Q7gmZKe1GR/ZEZEn6zAASKn9s=",
+ "dev": true
+ },
+ "is-path-in-cwd": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/is-path-in-cwd/download/is-path-in-cwd-2.1.0.tgz",
+ "integrity": "sha1-v+Lcomxp85cmWkAJljYCk1oFOss=",
+ "dev": true,
+ "requires": {
+ "is-path-inside": "^2.1.0"
+ }
+ },
+ "is-path-inside": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/is-path-inside/download/is-path-inside-2.1.0.tgz",
+ "integrity": "sha1-fJgQWH1lmkDSe8201WFuqwWUlLI=",
+ "dev": true,
+ "requires": {
+ "path-is-inside": "^1.0.2"
+ }
+ },
+ "is-plain-obj": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npm.taobao.org/is-plain-obj/download/is-plain-obj-1.1.0.tgz",
+ "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=",
+ "dev": true
+ },
+ "is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npm.taobao.org/is-plain-object/download/is-plain-object-2.0.4.tgz",
+ "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=",
+ "dev": true,
+ "requires": {
+ "isobject": "^3.0.1"
+ }
+ },
+ "is-promise": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/is-promise/download/is-promise-2.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-promise%2Fdownload%2Fis-promise-2.1.0.tgz",
+ "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
+ "dev": true
+ },
+ "is-regex": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npm.taobao.org/is-regex/download/is-regex-1.0.4.tgz",
+ "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
+ "dev": true,
+ "requires": {
+ "has": "^1.0.1"
+ }
+ },
+ "is-resolvable": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npm.taobao.org/is-resolvable/download/is-resolvable-1.1.0.tgz",
+ "integrity": "sha1-+xj4fOH+uSUWnJpAfBkxijIG7Yg=",
+ "dev": true
+ },
+ "is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz",
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
+ "dev": true
+ },
+ "is-svg": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/is-svg/download/is-svg-3.0.0.tgz",
+ "integrity": "sha1-kyHb0pwhLlypnE+peUxxS8r6L3U=",
+ "dev": true,
+ "requires": {
+ "html-comment-regex": "^1.1.0"
+ }
+ },
+ "is-symbol": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npm.taobao.org/is-symbol/download/is-symbol-1.0.2.tgz",
+ "integrity": "sha1-oFX2rlcZLK7jKeeoYBGLSXqVDzg=",
+ "dev": true,
+ "requires": {
+ "has-symbols": "^1.0.0"
+ }
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz",
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
+ "dev": true
+ },
+ "is-windows": {
+ "version": "1.0.2",
+ "resolved": "http://registry.npm.taobao.org/is-windows/download/is-windows-1.0.2.tgz",
+ "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=",
+ "dev": true
+ },
+ "is-wsl": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npm.taobao.org/is-wsl/download/is-wsl-1.1.0.tgz?cache=0&sync_timestamp=1569219566107&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-wsl%2Fdownload%2Fis-wsl-1.1.0.tgz",
+ "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=",
+ "dev": true
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz?cache=0&sync_timestamp=1562592096220&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fisarray%2Fdownload%2Fisarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "http://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+ "dev": true
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ },
+ "isstream": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz",
+ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
+ "dev": true
+ },
+ "javascript-stringify": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npm.taobao.org/javascript-stringify/download/javascript-stringify-1.6.0.tgz",
+ "integrity": "sha1-FC0RHzpuPa6PSpr9d9RYVbWpzOM=",
+ "dev": true
+ },
+ "jquery": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz",
+ "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw=="
+ },
+ "js-levenshtein": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npm.taobao.org/js-levenshtein/download/js-levenshtein-1.1.6.tgz",
+ "integrity": "sha1-xs7ljrNVA3LfjeuF+tXOZs4B1Z0=",
+ "dev": true
+ },
+ "js-message": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npm.taobao.org/js-message/download/js-message-1.0.5.tgz",
+ "integrity": "sha1-IwDSSxrwjondCVvBpMnJz8uJLRU=",
+ "dev": true
+ },
+ "js-queue": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/js-queue/download/js-queue-2.0.0.tgz",
+ "integrity": "sha1-NiITz4YPRo8BJfxslqvBdCUx+Ug=",
+ "dev": true,
+ "requires": {
+ "easy-stack": "^1.0.0"
+ }
+ },
+ "js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/js-tokens/download/js-tokens-4.0.0.tgz",
+ "integrity": "sha1-GSA/tZmR35jjoocFDUZHzerzJJk=",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "3.13.1",
+ "resolved": "https://registry.npm.taobao.org/js-yaml/download/js-yaml-3.13.1.tgz",
+ "integrity": "sha1-r/FRswv9+o5J4F2iLnQV6d+jeEc=",
+ "dev": true,
+ "requires": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ }
+ },
+ "jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npm.taobao.org/jsbn/download/jsbn-0.1.1.tgz",
+ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
+ "dev": true
+ },
+ "jsesc": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-2.5.2.tgz",
+ "integrity": "sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q=",
+ "dev": true
+ },
+ "json-parse-better-errors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npm.taobao.org/json-parse-better-errors/download/json-parse-better-errors-1.0.2.tgz",
+ "integrity": "sha1-u4Z8+zRQ5pEHwTHRxRS6s9yLyqk=",
+ "dev": true
+ },
+ "json-schema": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npm.taobao.org/json-schema/download/json-schema-0.2.3.tgz?cache=0&sync_timestamp=1567740732347&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema%2Fdownload%2Fjson-schema-0.2.3.tgz",
+ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
+ "dev": true
+ },
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=",
+ "dev": true
+ },
+ "json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/json-stable-stringify-without-jsonify/download/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
+ "dev": true
+ },
+ "json-stringify-safe": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
+ "dev": true
+ },
+ "json3": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npm.taobao.org/json3/download/json3-3.3.3.tgz",
+ "integrity": "sha1-f8EON1/FrkLEcFpcwKpvYr4wW4E=",
+ "dev": true
+ },
+ "json5": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npm.taobao.org/json5/download/json5-2.1.1.tgz",
+ "integrity": "sha1-gbbLBOm6SW8ccAXQe0NoomOPkLY=",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.0"
+ }
+ },
+ "jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/jsonfile/download/jsonfile-4.0.0.tgz",
+ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "jsprim": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz",
+ "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.3.0",
+ "json-schema": "0.2.3",
+ "verror": "1.10.0"
+ }
+ },
+ "killable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/killable/download/killable-1.0.1.tgz",
+ "integrity": "sha1-TIzkQRh6Bhx0dPuHygjipjgZSJI=",
+ "dev": true
+ },
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-6.0.2.tgz",
+ "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=",
+ "dev": true
+ },
+ "launch-editor": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npm.taobao.org/launch-editor/download/launch-editor-2.2.1.tgz",
+ "integrity": "sha1-hxtaPuOdZoD8wm03kwtu7aidsMo=",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.3.0",
+ "shell-quote": "^1.6.1"
+ }
+ },
+ "launch-editor-middleware": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npm.taobao.org/launch-editor-middleware/download/launch-editor-middleware-2.2.1.tgz",
+ "integrity": "sha1-4UsH5scVSwpLhqD9NFeE5FgEwVc=",
+ "dev": true,
+ "requires": {
+ "launch-editor": "^2.2.1"
+ }
+ },
+ "lcid": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/lcid/download/lcid-2.0.0.tgz",
+ "integrity": "sha1-bvXS32DlL4LrIopMNz6NHzlyU88=",
+ "dev": true,
+ "requires": {
+ "invert-kv": "^2.0.0"
+ }
+ },
+ "levn": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
+ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2"
+ }
+ },
+ "lines-and-columns": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npm.taobao.org/lines-and-columns/download/lines-and-columns-1.1.6.tgz",
+ "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=",
+ "dev": true
+ },
+ "loader-fs-cache": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npm.taobao.org/loader-fs-cache/download/loader-fs-cache-1.0.2.tgz",
+ "integrity": "sha1-VM7fa3J+F3n9jwEgXwX26IcG8IY=",
+ "dev": true,
+ "requires": {
+ "find-cache-dir": "^0.1.1",
+ "mkdirp": "0.5.1"
+ },
+ "dependencies": {
+ "find-cache-dir": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-0.1.1.tgz",
+ "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=",
+ "dev": true,
+ "requires": {
+ "commondir": "^1.0.1",
+ "mkdirp": "^0.5.1",
+ "pkg-dir": "^1.0.0"
+ }
+ },
+ "find-up": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-1.1.2.tgz",
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+ "dev": true,
+ "requires": {
+ "path-exists": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "path-exists": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-2.1.0.tgz",
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+ "dev": true,
+ "requires": {
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "pkg-dir": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-1.0.0.tgz",
+ "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=",
+ "dev": true,
+ "requires": {
+ "find-up": "^1.0.0"
+ }
+ }
+ }
+ },
+ "loader-runner": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npm.taobao.org/loader-runner/download/loader-runner-2.4.0.tgz",
+ "integrity": "sha1-7UcGa/5TTX6ExMe5mYwqdWB9k1c=",
+ "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"
+ },
+ "dependencies": {
+ "json5": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz",
+ "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.0"
+ }
+ }
+ }
+ },
+ "locate-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-2.0.0.tgz",
+ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+ "dev": true,
+ "requires": {
+ "p-locate": "^2.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "lodash": {
+ "version": "4.17.15",
+ "resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.15.tgz",
+ "integrity": "sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg="
+ },
+ "lodash.defaultsdeep": {
+ "version": "4.6.1",
+ "resolved": "https://registry.npm.taobao.org/lodash.defaultsdeep/download/lodash.defaultsdeep-4.6.1.tgz",
+ "integrity": "sha1-US6b1yHSctlOPTpjZT+hdRZ0HKY=",
+ "dev": true
+ },
+ "lodash.kebabcase": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npm.taobao.org/lodash.kebabcase/download/lodash.kebabcase-4.1.1.tgz",
+ "integrity": "sha1-hImxyw0p/4gZXM7KRI/21swpXDY=",
+ "dev": true
+ },
+ "lodash.mapvalues": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npm.taobao.org/lodash.mapvalues/download/lodash.mapvalues-4.6.0.tgz",
+ "integrity": "sha1-G6+lAF3p3W9PJmaMMMo3IwzJaJw=",
+ "dev": true
+ },
+ "lodash.memoize": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npm.taobao.org/lodash.memoize/download/lodash.memoize-4.1.2.tgz",
+ "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=",
+ "dev": true
+ },
+ "lodash.transform": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npm.taobao.org/lodash.transform/download/lodash.transform-4.6.0.tgz",
+ "integrity": "sha1-EjBkIvYzJK7YSD0/ODMrX2cFR6A=",
+ "dev": true
+ },
+ "lodash.uniq": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npm.taobao.org/lodash.uniq/download/lodash.uniq-4.5.0.tgz",
+ "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=",
+ "dev": true
+ },
+ "log-symbols": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npm.taobao.org/log-symbols/download/log-symbols-2.2.0.tgz",
+ "integrity": "sha1-V0Dhxdbw39pK2TI7UzIQfva0xAo=",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.0.1"
+ }
+ },
+ "loglevel": {
+ "version": "1.6.4",
+ "resolved": "https://registry.npm.taobao.org/loglevel/download/loglevel-1.6.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floglevel%2Fdownload%2Floglevel-1.6.4.tgz",
+ "integrity": "sha1-9Aj08Abbg1TQV33PbTNIWzy5DVY=",
+ "dev": true
+ },
+ "loose-envify": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npm.taobao.org/loose-envify/download/loose-envify-1.4.0.tgz",
+ "integrity": "sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8=",
+ "dev": true,
+ "requires": {
+ "js-tokens": "^3.0.0 || ^4.0.0"
+ }
+ },
+ "lower-case": {
+ "version": "1.1.4",
+ "resolved": "http://registry.npm.taobao.org/lower-case/download/lower-case-1.1.4.tgz",
+ "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=",
+ "dev": true
+ },
+ "lru-cache": {
+ "version": "5.1.1",
+ "resolved": "http://registry.npm.taobao.org/lru-cache/download/lru-cache-5.1.1.tgz",
+ "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=",
+ "dev": true,
+ "requires": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "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"
+ }
+ },
+ "mamacro": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npm.taobao.org/mamacro/download/mamacro-0.0.3.tgz",
+ "integrity": "sha1-rSyVdhl8nxq/MI0Hh4Zb2XWj8+Q=",
+ "dev": true
+ },
+ "map-age-cleaner": {
+ "version": "0.1.3",
+ "resolved": "http://registry.npm.taobao.org/map-age-cleaner/download/map-age-cleaner-0.1.3.tgz",
+ "integrity": "sha1-fVg6cwZDTAVf5HSw9FB45uG0uSo=",
+ "dev": true,
+ "requires": {
+ "p-defer": "^1.0.0"
+ }
+ },
+ "map-cache": {
+ "version": "0.2.2",
+ "resolved": "http://registry.npm.taobao.org/map-cache/download/map-cache-0.2.2.tgz",
+ "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
+ "dev": true
+ },
+ "map-visit": {
+ "version": "1.0.0",
+ "resolved": "http://registry.npm.taobao.org/map-visit/download/map-visit-1.0.0.tgz",
+ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
+ "dev": true,
+ "requires": {
+ "object-visit": "^1.0.0"
+ }
+ },
+ "md5.js": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npm.taobao.org/md5.js/download/md5.js-1.3.5.tgz",
+ "integrity": "sha1-tdB7jjIW4+J81yjXL3DR5qNCAF8=",
+ "dev": true,
+ "requires": {
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "mdn-data": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npm.taobao.org/mdn-data/download/mdn-data-2.0.4.tgz?cache=0&sync_timestamp=1562672674261&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmdn-data%2Fdownload%2Fmdn-data-2.0.4.tgz",
+ "integrity": "sha1-aZs8OKxvHXKAkaZGULZdOIUC/Vs=",
+ "dev": true
+ },
+ "media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npm.taobao.org/media-typer/download/media-typer-0.3.0.tgz",
+ "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
+ "dev": true
+ },
+ "mem": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npm.taobao.org/mem/download/mem-4.3.0.tgz",
+ "integrity": "sha1-Rhr0l7xK4JYIzbLmDu+2m/90QXg=",
+ "dev": true,
+ "requires": {
+ "map-age-cleaner": "^0.1.1",
+ "mimic-fn": "^2.0.0",
+ "p-is-promise": "^2.0.0"
+ },
+ "dependencies": {
+ "mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-2.1.0.tgz",
+ "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=",
+ "dev": true
+ }
+ }
+ },
+ "memory-fs": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.4.1.tgz",
+ "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
+ "dev": true,
+ "requires": {
+ "errno": "^0.1.3",
+ "readable-stream": "^2.0.1"
+ }
+ },
+ "merge-descriptors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/merge-descriptors/download/merge-descriptors-1.0.1.tgz",
+ "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=",
+ "dev": true
+ },
+ "merge-source-map": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npm.taobao.org/merge-source-map/download/merge-source-map-1.1.0.tgz",
+ "integrity": "sha1-L93n5gIJOfcJBqaPLXrmheTIxkY=",
+ "dev": true,
+ "requires": {
+ "source-map": "^0.6.1"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "merge-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/merge-stream/download/merge-stream-2.0.0.tgz",
+ "integrity": "sha1-UoI2KaFN0AyXcPtq1H3GMQ8sH2A=",
+ "dev": true
+ },
+ "merge2": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npm.taobao.org/merge2/download/merge2-1.3.0.tgz",
+ "integrity": "sha1-WzZu6DsvFYLEj4fkfPGpNSEDyoE=",
+ "dev": true
+ },
+ "methods": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npm.taobao.org/methods/download/methods-1.1.2.tgz",
+ "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-3.1.10.tgz",
+ "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=",
+ "dev": true,
+ "requires": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.3.1",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "extglob": "^2.0.4",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^6.0.2",
+ "nanomatch": "^1.2.9",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.2"
+ }
+ },
+ "miller-rabin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npm.taobao.org/miller-rabin/download/miller-rabin-4.0.1.tgz",
+ "integrity": "sha1-8IA1HIZbDcViqEYpZtqlNUPHik0=",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.0.0",
+ "brorand": "^1.0.1"
+ }
+ },
+ "mime": {
+ "version": "2.4.4",
+ "resolved": "https://registry.npm.taobao.org/mime/download/mime-2.4.4.tgz?cache=0&sync_timestamp=1560034758817&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-2.4.4.tgz",
+ "integrity": "sha1-vXuRE1/GsBzePpuuM9ZZtj2IV+U=",
+ "dev": true
+ },
+ "mime-db": {
+ "version": "1.40.0",
+ "resolved": "https://registry.npm.taobao.org/mime-db/download/mime-db-1.40.0.tgz?cache=0&sync_timestamp=1569468742433&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-db%2Fdownload%2Fmime-db-1.40.0.tgz",
+ "integrity": "sha1-plBX6ZjbCQ9zKmj2wnbTh9QSbDI=",
+ "dev": true
+ },
+ "mime-types": {
+ "version": "2.1.24",
+ "resolved": "https://registry.npm.taobao.org/mime-types/download/mime-types-2.1.24.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-types%2Fdownload%2Fmime-types-2.1.24.tgz",
+ "integrity": "sha1-tvjQs+lR77d97eyhlM/20W9nb4E=",
+ "dev": true,
+ "requires": {
+ "mime-db": "1.40.0"
+ }
+ },
+ "mimic-fn": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-1.2.0.tgz",
+ "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=",
+ "dev": true
+ },
+ "mini-css-extract-plugin": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npm.taobao.org/mini-css-extract-plugin/download/mini-css-extract-plugin-0.8.0.tgz?cache=0&sync_timestamp=1563310319732&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmini-css-extract-plugin%2Fdownload%2Fmini-css-extract-plugin-0.8.0.tgz",
+ "integrity": "sha1-gdQexP5YxxOpatfHI82y0L1NcOE=",
+ "dev": true,
+ "requires": {
+ "loader-utils": "^1.1.0",
+ "normalize-url": "1.9.1",
+ "schema-utils": "^1.0.0",
+ "webpack-sources": "^1.1.0"
+ },
+ "dependencies": {
+ "normalize-url": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npm.taobao.org/normalize-url/download/normalize-url-1.9.1.tgz",
+ "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=",
+ "dev": true,
+ "requires": {
+ "object-assign": "^4.0.1",
+ "prepend-http": "^1.0.0",
+ "query-string": "^4.1.0",
+ "sort-keys": "^1.0.0"
+ }
+ }
+ }
+ },
+ "minimalistic-assert": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/minimalistic-assert/download/minimalistic-assert-1.0.1.tgz",
+ "integrity": "sha1-LhlN4ERibUoQ5/f7wAznPoPk1cc=",
+ "dev": true
+ },
+ "minimalistic-crypto-utils": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/minimalistic-crypto-utils/download/minimalistic-crypto-utils-1.0.1.tgz",
+ "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=",
+ "dev": true
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "http://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz",
+ "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "http://registry.npm.taobao.org/minimist/download/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ },
+ "mississippi": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/mississippi/download/mississippi-3.0.0.tgz",
+ "integrity": "sha1-6goykfl+C16HdrNj1fChLZTGcCI=",
+ "dev": true,
+ "requires": {
+ "concat-stream": "^1.5.0",
+ "duplexify": "^3.4.2",
+ "end-of-stream": "^1.1.0",
+ "flush-write-stream": "^1.0.0",
+ "from2": "^2.1.0",
+ "parallel-transform": "^1.1.0",
+ "pump": "^3.0.0",
+ "pumpify": "^1.3.3",
+ "stream-each": "^1.1.0",
+ "through2": "^2.0.0"
+ }
+ },
+ "mixin-deep": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npm.taobao.org/mixin-deep/download/mixin-deep-1.3.2.tgz?cache=0&sync_timestamp=1561436244196&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmixin-deep%2Fdownload%2Fmixin-deep-1.3.2.tgz",
+ "integrity": "sha1-ESC0PcNZp4Xc5ltVuC4lfM9HlWY=",
+ "dev": true,
+ "requires": {
+ "for-in": "^1.0.2",
+ "is-extendable": "^1.0.1"
+ },
+ "dependencies": {
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "http://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz",
+ "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=",
+ "dev": true,
+ "requires": {
+ "is-plain-object": "^2.0.4"
+ }
+ }
+ }
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "http://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dev": true,
+ "requires": {
+ "minimist": "0.0.8"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "0.0.8",
+ "resolved": "http://registry.npm.taobao.org/minimist/download/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+ "dev": true
+ }
+ }
+ },
+ "ml-array-max": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npm.taobao.org/ml-array-max/download/ml-array-max-1.1.2.tgz",
+ "integrity": "sha1-rBSklU69ufQBd0zBVy/OQ54S+U0=",
+ "requires": {
+ "is-any-array": "^0.0.3"
+ }
+ },
+ "ml-array-min": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npm.taobao.org/ml-array-min/download/ml-array-min-1.1.2.tgz",
+ "integrity": "sha1-oIQ3D+eJmKQTHVZtBm7gG8zOJTo=",
+ "requires": {
+ "is-any-array": "^0.0.3"
+ }
+ },
+ "ml-array-rescale": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npm.taobao.org/ml-array-rescale/download/ml-array-rescale-1.3.1.tgz",
+ "integrity": "sha1-flWHGvh0HSEuK0e4rNVVcZNsgis=",
+ "requires": {
+ "is-any-array": "^0.0.3",
+ "ml-array-max": "^1.1.2",
+ "ml-array-min": "^1.1.2"
+ }
+ },
+ "ml-matrix": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npm.taobao.org/ml-matrix/download/ml-matrix-6.5.0.tgz",
+ "integrity": "sha1-Pzu8VKaUoKz2f+t6dQqQOsJo1yw=",
+ "requires": {
+ "ml-array-rescale": "^1.3.1"
+ }
+ },
+ "move-concurrently": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/move-concurrently/download/move-concurrently-1.0.1.tgz",
+ "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=",
+ "dev": true,
+ "requires": {
+ "aproba": "^1.1.1",
+ "copy-concurrently": "^1.0.0",
+ "fs-write-stream-atomic": "^1.0.8",
+ "mkdirp": "^0.5.1",
+ "rimraf": "^2.5.4",
+ "run-queue": "^1.0.3"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz",
+ "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=",
+ "dev": true
+ },
+ "multicast-dns": {
+ "version": "6.2.3",
+ "resolved": "https://registry.npm.taobao.org/multicast-dns/download/multicast-dns-6.2.3.tgz",
+ "integrity": "sha1-oOx72QVcQoL3kMPIL04o2zsxsik=",
+ "dev": true,
+ "requires": {
+ "dns-packet": "^1.3.1",
+ "thunky": "^1.0.2"
+ }
+ },
+ "multicast-dns-service-types": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npm.taobao.org/multicast-dns-service-types/download/multicast-dns-service-types-1.1.0.tgz",
+ "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=",
+ "dev": true
+ },
+ "mute-stream": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.7.tgz",
+ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
+ "dev": true
+ },
+ "mz": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npm.taobao.org/mz/download/mz-2.7.0.tgz",
+ "integrity": "sha1-lQCAV6Vsr63CvGPd5/n/aVWUjjI=",
+ "dev": true,
+ "requires": {
+ "any-promise": "^1.0.0",
+ "object-assign": "^4.0.1",
+ "thenify-all": "^1.0.0"
+ }
+ },
+ "nan": {
+ "version": "2.14.0",
+ "resolved": "https://registry.npm.taobao.org/nan/download/nan-2.14.0.tgz",
+ "integrity": "sha1-eBj3IgJ7JFmobwKV1DTR/CM2xSw=",
+ "dev": true,
+ "optional": true
+ },
+ "nanomatch": {
+ "version": "1.2.13",
+ "resolved": "http://registry.npm.taobao.org/nanomatch/download/nanomatch-1.2.13.tgz",
+ "integrity": "sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk=",
+ "dev": true,
+ "requires": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "fragment-cache": "^0.2.1",
+ "is-windows": "^1.0.2",
+ "kind-of": "^6.0.2",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ }
+ },
+ "natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npm.taobao.org/natural-compare/download/natural-compare-1.4.0.tgz",
+ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
+ "dev": true
+ },
+ "negotiator": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npm.taobao.org/negotiator/download/negotiator-0.6.2.tgz",
+ "integrity": "sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs=",
+ "dev": true
+ },
+ "neo-async": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npm.taobao.org/neo-async/download/neo-async-2.6.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fneo-async%2Fdownload%2Fneo-async-2.6.1.tgz",
+ "integrity": "sha1-rCetpmFn+ohJpq3dg39rGJrSCBw=",
+ "dev": true
+ },
+ "nice-try": {
+ "version": "1.0.5",
+ "resolved": "http://registry.npm.taobao.org/nice-try/download/nice-try-1.0.5.tgz",
+ "integrity": "sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y=",
+ "dev": true
+ },
+ "no-case": {
+ "version": "2.3.2",
+ "resolved": "http://registry.npm.taobao.org/no-case/download/no-case-2.3.2.tgz",
+ "integrity": "sha1-YLgTOWvjmz8SiKTB7V0efSi0ZKw=",
+ "dev": true,
+ "requires": {
+ "lower-case": "^1.1.1"
+ }
+ },
+ "node-forge": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npm.taobao.org/node-forge/download/node-forge-0.9.0.tgz?cache=0&sync_timestamp=1569524669712&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-forge%2Fdownload%2Fnode-forge-0.9.0.tgz",
+ "integrity": "sha1-1iQFDtu0SHStyhK7mlLsY8t4JXk=",
+ "dev": true
+ },
+ "node-ipc": {
+ "version": "9.1.1",
+ "resolved": "https://registry.npm.taobao.org/node-ipc/download/node-ipc-9.1.1.tgz",
+ "integrity": "sha1-TiRe1pOOZRAOWV68XcNLFujdXWk=",
+ "dev": true,
+ "requires": {
+ "event-pubsub": "4.3.0",
+ "js-message": "1.0.5",
+ "js-queue": "2.0.0"
+ }
+ },
+ "node-libs-browser": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npm.taobao.org/node-libs-browser/download/node-libs-browser-2.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-libs-browser%2Fdownload%2Fnode-libs-browser-2.2.1.tgz",
+ "integrity": "sha1-tk9RPRgzhiX5A0bSew0jXmMfZCU=",
+ "dev": true,
+ "requires": {
+ "assert": "^1.1.1",
+ "browserify-zlib": "^0.2.0",
+ "buffer": "^4.3.0",
+ "console-browserify": "^1.1.0",
+ "constants-browserify": "^1.0.0",
+ "crypto-browserify": "^3.11.0",
+ "domain-browser": "^1.1.1",
+ "events": "^3.0.0",
+ "https-browserify": "^1.0.0",
+ "os-browserify": "^0.3.0",
+ "path-browserify": "0.0.1",
+ "process": "^0.11.10",
+ "punycode": "^1.2.4",
+ "querystring-es3": "^0.2.0",
+ "readable-stream": "^2.3.3",
+ "stream-browserify": "^2.0.1",
+ "stream-http": "^2.7.2",
+ "string_decoder": "^1.0.0",
+ "timers-browserify": "^2.0.4",
+ "tty-browserify": "0.0.0",
+ "url": "^0.11.0",
+ "util": "^0.11.0",
+ "vm-browserify": "^1.0.1"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz",
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
+ "dev": true
+ }
+ }
+ },
+ "node-releases": {
+ "version": "1.1.35",
+ "resolved": "https://registry.npm.taobao.org/node-releases/download/node-releases-1.1.35.tgz?cache=0&sync_timestamp=1570538675820&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.35.tgz",
+ "integrity": "sha1-MqdKPNSXqnfyPVCfSDR1/RYOTEg=",
+ "dev": true,
+ "requires": {
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1565627380363&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz",
+ "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=",
+ "dev": true
+ }
+ }
+ },
+ "normalize-package-data": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=",
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ }
+ },
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "http://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz",
+ "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=",
+ "dev": true
+ },
+ "normalize-range": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npm.taobao.org/normalize-range/download/normalize-range-0.1.2.tgz",
+ "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=",
+ "dev": true
+ },
+ "normalize-url": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npm.taobao.org/normalize-url/download/normalize-url-3.3.0.tgz",
+ "integrity": "sha1-suHE3E98bVd0PfczpPWXjRhlBVk=",
+ "dev": true
+ },
+ "normalize-wheel": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/normalize-wheel/download/normalize-wheel-1.0.1.tgz",
+ "integrity": "sha1-rsiGr/2wRQcNhWRH32Ls+GFG7EU="
+ },
+ "npm-run-path": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-2.0.2.tgz",
+ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
+ "dev": true,
+ "requires": {
+ "path-key": "^2.0.0"
+ }
+ },
+ "nth-check": {
+ "version": "1.0.2",
+ "resolved": "http://registry.npm.taobao.org/nth-check/download/nth-check-1.0.2.tgz",
+ "integrity": "sha1-sr0pXDfj3VijvwcAN2Zjuk2c8Fw=",
+ "dev": true,
+ "requires": {
+ "boolbase": "~1.0.0"
+ }
+ },
+ "num2fraction": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npm.taobao.org/num2fraction/download/num2fraction-1.2.2.tgz",
+ "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=",
+ "dev": true
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "resolved": "http://registry.npm.taobao.org/number-is-nan/download/number-is-nan-1.0.1.tgz",
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
+ "dev": true
+ },
+ "oauth-sign": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.9.0.tgz",
+ "integrity": "sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU=",
+ "dev": true
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "http://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ },
+ "object-copy": {
+ "version": "0.1.0",
+ "resolved": "http://registry.npm.taobao.org/object-copy/download/object-copy-0.1.0.tgz",
+ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
+ "dev": true,
+ "requires": {
+ "copy-descriptor": "^0.1.0",
+ "define-property": "^0.2.5",
+ "kind-of": "^3.0.3"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "object-hash": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npm.taobao.org/object-hash/download/object-hash-1.3.1.tgz",
+ "integrity": "sha1-/eRSCYqVHLFF8Dm7fUVUSd3BJt8=",
+ "dev": true
+ },
+ "object-inspect": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npm.taobao.org/object-inspect/download/object-inspect-1.6.0.tgz",
+ "integrity": "sha1-xwtsv3LydKq0w0wMgvUWe/gs8Vs=",
+ "dev": true
+ },
+ "object-is": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/object-is/download/object-is-1.0.1.tgz",
+ "integrity": "sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY=",
+ "dev": true
+ },
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npm.taobao.org/object-keys/download/object-keys-1.1.1.tgz",
+ "integrity": "sha1-HEfyct8nfzsdrwYWd9nILiMixg4=",
+ "dev": true
+ },
+ "object-visit": {
+ "version": "1.0.1",
+ "resolved": "http://registry.npm.taobao.org/object-visit/download/object-visit-1.0.1.tgz",
+ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
+ "dev": true,
+ "requires": {
+ "isobject": "^3.0.0"
+ }
+ },
+ "object.assign": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npm.taobao.org/object.assign/download/object.assign-4.1.0.tgz",
+ "integrity": "sha1-lovxEA15Vrs8oIbwBvhGs7xACNo=",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.2",
+ "function-bind": "^1.1.1",
+ "has-symbols": "^1.0.0",
+ "object-keys": "^1.0.11"
+ }
+ },
+ "object.getownpropertydescriptors": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npm.taobao.org/object.getownpropertydescriptors/download/object.getownpropertydescriptors-2.0.3.tgz",
+ "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.2",
+ "es-abstract": "^1.5.1"
+ }
+ },
+ "object.pick": {
+ "version": "1.3.0",
+ "resolved": "http://registry.npm.taobao.org/object.pick/download/object.pick-1.3.0.tgz",
+ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
+ "dev": true,
+ "requires": {
+ "isobject": "^3.0.1"
+ }
+ },
+ "object.values": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npm.taobao.org/object.values/download/object.values-1.1.0.tgz",
+ "integrity": "sha1-v2gQ712j5TJXkOqqK+IT6oRiTak=",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.12.0",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3"
+ }
+ },
+ "obuf": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npm.taobao.org/obuf/download/obuf-1.1.2.tgz",
+ "integrity": "sha1-Cb6jND1BhZ69RGKS0RydTbYZCE4=",
+ "dev": true
+ },
+ "on-finished": {
+ "version": "2.3.0",
+ "resolved": "http://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz",
+ "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
+ "dev": true,
+ "requires": {
+ "ee-first": "1.1.1"
+ }
+ },
+ "on-headers": {
+ "version": "1.0.2",
+ "resolved": "http://registry.npm.taobao.org/on-headers/download/on-headers-1.0.2.tgz",
+ "integrity": "sha1-dysK5qqlJcOZ5Imt+tkMQD6zwo8=",
+ "dev": true
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "http://registry.npm.taobao.org/once/download/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dev": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "onetime": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/onetime/download/onetime-2.0.1.tgz",
+ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "^1.0.0"
+ }
+ },
+ "open": {
+ "version": "6.4.0",
+ "resolved": "https://registry.npm.taobao.org/open/download/open-6.4.0.tgz",
+ "integrity": "sha1-XBPpbQ3IlGhhZPGJZez+iJ7PyKk=",
+ "dev": true,
+ "requires": {
+ "is-wsl": "^1.1.0"
+ }
+ },
+ "opener": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npm.taobao.org/opener/download/opener-1.5.1.tgz",
+ "integrity": "sha1-bS8Od/GgrwAyrKcWwsH7uOfoq+0=",
+ "dev": true
+ },
+ "opn": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npm.taobao.org/opn/download/opn-5.5.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fopn%2Fdownload%2Fopn-5.5.0.tgz",
+ "integrity": "sha1-/HFk+rVtI1kExRw7J9pnWMo7m/w=",
+ "dev": true,
+ "requires": {
+ "is-wsl": "^1.1.0"
+ }
+ },
+ "optionator": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npm.taobao.org/optionator/download/optionator-0.8.2.tgz",
+ "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
+ "dev": true,
+ "requires": {
+ "deep-is": "~0.1.3",
+ "fast-levenshtein": "~2.0.4",
+ "levn": "~0.3.0",
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2",
+ "wordwrap": "~1.0.0"
+ }
+ },
+ "ora": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npm.taobao.org/ora/download/ora-3.4.0.tgz",
+ "integrity": "sha1-vwdSSRBZo+8+1MhQl1Md6f280xg=",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.2",
+ "cli-cursor": "^2.1.0",
+ "cli-spinners": "^2.0.0",
+ "log-symbols": "^2.2.0",
+ "strip-ansi": "^5.2.0",
+ "wcwidth": "^1.0.1"
+ }
+ },
+ "original": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npm.taobao.org/original/download/original-1.0.2.tgz",
+ "integrity": "sha1-5EKmHP/hxf0gpl8yYcJmY7MD8l8=",
+ "dev": true,
+ "requires": {
+ "url-parse": "^1.4.3"
+ }
+ },
+ "os-browserify": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npm.taobao.org/os-browserify/download/os-browserify-0.3.0.tgz",
+ "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=",
+ "dev": true
+ },
+ "os-locale": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npm.taobao.org/os-locale/download/os-locale-3.1.0.tgz?cache=0&sync_timestamp=1560274285880&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fos-locale%2Fdownload%2Fos-locale-3.1.0.tgz",
+ "integrity": "sha1-qAKm7hfyTBBIOrmTVxnO9O0Wvxo=",
+ "dev": true,
+ "requires": {
+ "execa": "^1.0.0",
+ "lcid": "^2.0.0",
+ "mem": "^4.0.0"
+ }
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "http://registry.npm.taobao.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
+ "dev": true
+ },
+ "p-defer": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/p-defer/download/p-defer-1.0.0.tgz?cache=0&sync_timestamp=1559922734651&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-defer%2Fdownload%2Fp-defer-1.0.0.tgz",
+ "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=",
+ "dev": true
+ },
+ "p-finally": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/p-finally/download/p-finally-1.0.0.tgz",
+ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
+ "dev": true
+ },
+ "p-is-promise": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/p-is-promise/download/p-is-promise-2.1.0.tgz",
+ "integrity": "sha1-kYzrrqJIpiz3/6uOO8qMX4gvxC4=",
+ "dev": true
+ },
+ "p-limit": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-1.3.0.tgz",
+ "integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=",
+ "dev": true,
+ "requires": {
+ "p-try": "^1.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-2.0.0.tgz",
+ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+ "dev": true,
+ "requires": {
+ "p-limit": "^1.1.0"
+ }
+ },
+ "p-map": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/p-map/download/p-map-2.1.0.tgz?cache=0&sync_timestamp=1563032875018&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-map%2Fdownload%2Fp-map-2.1.0.tgz",
+ "integrity": "sha1-MQko/u+cnsxltosXaTAYpmXOoXU=",
+ "dev": true
+ },
+ "p-retry": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npm.taobao.org/p-retry/download/p-retry-3.0.1.tgz",
+ "integrity": "sha1-MWtMiJPiyNwc+okfQGxLQivr8yg=",
+ "dev": true,
+ "requires": {
+ "retry": "^0.12.0"
+ }
+ },
+ "p-try": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-1.0.0.tgz",
+ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
+ "dev": true
+ },
+ "pako": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npm.taobao.org/pako/download/pako-1.0.10.tgz",
+ "integrity": "sha1-Qyi621CGpCaqkPVBl31JVdpclzI=",
+ "dev": true
+ },
+ "parallel-transform": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npm.taobao.org/parallel-transform/download/parallel-transform-1.2.0.tgz",
+ "integrity": "sha1-kEnKN9bLIYLDsdLHIL6U0UpYFPw=",
+ "dev": true,
+ "requires": {
+ "cyclist": "^1.0.1",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.1.5"
+ }
+ },
+ "param-case": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npm.taobao.org/param-case/download/param-case-2.1.1.tgz",
+ "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=",
+ "dev": true,
+ "requires": {
+ "no-case": "^2.2.0"
+ }
+ },
+ "parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/parent-module/download/parent-module-1.0.1.tgz",
+ "integrity": "sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI=",
+ "dev": true,
+ "requires": {
+ "callsites": "^3.0.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
+ }
+ }
+ },
+ "parse-asn1": {
+ "version": "5.1.5",
+ "resolved": "https://registry.npm.taobao.org/parse-asn1/download/parse-asn1-5.1.5.tgz",
+ "integrity": "sha1-ADJxND2ljclMrOSU+u89IUfs6g4=",
+ "dev": true,
+ "requires": {
+ "asn1.js": "^4.0.0",
+ "browserify-aes": "^1.0.0",
+ "create-hash": "^1.1.0",
+ "evp_bytestokey": "^1.0.0",
+ "pbkdf2": "^3.0.3",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-4.0.0.tgz",
+ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+ "dev": true,
+ "requires": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ }
+ },
+ "parse5": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/parse5/download/parse5-4.0.0.tgz",
+ "integrity": "sha1-bXhlbj2o14tOwLkG98CO8d/j9gg=",
+ "dev": true
+ },
+ "parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npm.taobao.org/parseurl/download/parseurl-1.3.3.tgz",
+ "integrity": "sha1-naGee+6NEt/wUT7Vt2lXeTvC6NQ=",
+ "dev": true
+ },
+ "pascalcase": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npm.taobao.org/pascalcase/download/pascalcase-0.1.1.tgz",
+ "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
+ "dev": true
+ },
+ "path-browserify": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npm.taobao.org/path-browserify/download/path-browserify-0.0.1.tgz",
+ "integrity": "sha1-5sTd1+06onxoogzE5Q4aTug7vEo=",
+ "dev": true
+ },
+ "path-dirname": {
+ "version": "1.0.2",
+ "resolved": "http://registry.npm.taobao.org/path-dirname/download/path-dirname-1.0.2.tgz",
+ "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
+ "dev": true
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "http://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "dev": true
+ },
+ "path-is-inside": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npm.taobao.org/path-is-inside/download/path-is-inside-1.0.2.tgz",
+ "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
+ "dev": true
+ },
+ "path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-2.0.1.tgz",
+ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
+ "dev": true
+ },
+ "path-parse": {
+ "version": "1.0.6",
+ "resolved": "http://registry.npm.taobao.org/path-parse/download/path-parse-1.0.6.tgz",
+ "integrity": "sha1-1i27VnlAXXLEc37FhgDp3c8G0kw=",
+ "dev": true
+ },
+ "path-to-regexp": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-0.1.7.tgz",
+ "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=",
+ "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"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true
+ }
+ }
+ },
+ "pbkdf2": {
+ "version": "3.0.17",
+ "resolved": "https://registry.npm.taobao.org/pbkdf2/download/pbkdf2-3.0.17.tgz",
+ "integrity": "sha1-l2wgZTBhexTrsyEUI597CTNuk6Y=",
+ "dev": true,
+ "requires": {
+ "create-hash": "^1.1.2",
+ "create-hmac": "^1.1.4",
+ "ripemd160": "^2.0.1",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
+ }
+ },
+ "performance-now": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz",
+ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
+ "dev": true
+ },
+ "pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-4.0.1.tgz",
+ "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=",
+ "dev": true
+ },
+ "pinkie": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npm.taobao.org/pinkie/download/pinkie-2.0.4.tgz",
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+ "dev": true
+ },
+ "pinkie-promise": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/pinkie-promise/download/pinkie-promise-2.0.1.tgz",
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+ "dev": true,
+ "requires": {
+ "pinkie": "^2.0.0"
+ }
+ },
+ "pkg-dir": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-3.0.0.tgz",
+ "integrity": "sha1-J0kCDyOe2ZCIGx9xIQ1R62UjvqM=",
+ "dev": true,
+ "requires": {
+ "find-up": "^3.0.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz",
+ "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=",
+ "dev": true,
+ "requires": {
+ "locate-path": "^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"
+ }
+ },
+ "p-limit": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.2.1.tgz",
+ "integrity": "sha1-qgeniMwxUck5tRMfY1cPDdIAlTc=",
+ "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",
+ "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.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
+ }
+ }
+ },
+ "pkg-up": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/pkg-up/download/pkg-up-2.0.0.tgz",
+ "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=",
+ "dev": true,
+ "requires": {
+ "find-up": "^2.1.0"
+ }
+ },
+ "pluralize": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npm.taobao.org/pluralize/download/pluralize-7.0.0.tgz",
+ "integrity": "sha1-KYuJ34uTsCIdv0Ia0rGx6iP8Z3c=",
+ "dev": true,
+ "optional": true
+ },
+ "portfinder": {
+ "version": "1.0.24",
+ "resolved": "https://registry.npm.taobao.org/portfinder/download/portfinder-1.0.24.tgz",
+ "integrity": "sha1-Ee+8aGXxLzdiS2Ux6tHYCe2WXPo=",
+ "dev": true,
+ "requires": {
+ "async": "^1.5.2",
+ "debug": "^2.2.0",
+ "mkdirp": "0.5.x"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "http://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz",
+ "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "posix-character-classes": {
+ "version": "0.1.1",
+ "resolved": "http://registry.npm.taobao.org/posix-character-classes/download/posix-character-classes-0.1.1.tgz",
+ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.18",
+ "resolved": "https://registry.npm.taobao.org/postcss/download/postcss-7.0.18.tgz",
+ "integrity": "sha1-S5zala5sBpxnpNkzAp7d1IOKwjM=",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.2",
+ "source-map": "^0.6.1",
+ "supports-color": "^6.1.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz?cache=0&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"
+ }
+ }
+ }
+ },
+ "postcss-calc": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npm.taobao.org/postcss-calc/download/postcss-calc-7.0.1.tgz",
+ "integrity": "sha1-Ntd7qwI7Dsu5eJ2E3LI8SUEUVDY=",
+ "dev": true,
+ "requires": {
+ "css-unit-converter": "^1.1.1",
+ "postcss": "^7.0.5",
+ "postcss-selector-parser": "^5.0.0-rc.4",
+ "postcss-value-parser": "^3.3.1"
+ }
+ },
+ "postcss-colormin": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npm.taobao.org/postcss-colormin/download/postcss-colormin-4.0.3.tgz",
+ "integrity": "sha1-rgYLzpPteUrHEmTwgTLVUJVr04E=",
+ "dev": true,
+ "requires": {
+ "browserslist": "^4.0.0",
+ "color": "^3.0.0",
+ "has": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ }
+ },
+ "postcss-convert-values": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npm.taobao.org/postcss-convert-values/download/postcss-convert-values-4.0.1.tgz",
+ "integrity": "sha1-yjgT7U2g+BL51DcDWE5Enr4Ymn8=",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ }
+ },
+ "postcss-discard-comments": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npm.taobao.org/postcss-discard-comments/download/postcss-discard-comments-4.0.2.tgz",
+ "integrity": "sha1-H7q9LCRr/2qq15l7KwkY9NevQDM=",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.0"
+ }
+ },
+ "postcss-discard-duplicates": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npm.taobao.org/postcss-discard-duplicates/download/postcss-discard-duplicates-4.0.2.tgz",
+ "integrity": "sha1-P+EzzTyCKC5VD8myORdqkge3hOs=",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.0"
+ }
+ },
+ "postcss-discard-empty": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npm.taobao.org/postcss-discard-empty/download/postcss-discard-empty-4.0.1.tgz",
+ "integrity": "sha1-yMlR6fc+2UKAGUWERKAq2Qu592U=",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.0"
+ }
+ },
+ "postcss-discard-overridden": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npm.taobao.org/postcss-discard-overridden/download/postcss-discard-overridden-4.0.1.tgz",
+ "integrity": "sha1-ZSrvipZybwKfXj4AFG7npOdV/1c=",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.0"
+ }
+ },
+ "postcss-load-config": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/postcss-load-config/download/postcss-load-config-2.1.0.tgz",
+ "integrity": "sha1-yE1pK3u3tB3c7ZTuYuirMbQXsAM=",
+ "dev": true,
+ "requires": {
+ "cosmiconfig": "^5.0.0",
+ "import-cwd": "^2.0.0"
+ }
+ },
+ "postcss-loader": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/postcss-loader/download/postcss-loader-3.0.0.tgz",
+ "integrity": "sha1-a5eUPkfHLYRfqeA/Jzdz1OjdbC0=",
+ "dev": true,
+ "requires": {
+ "loader-utils": "^1.1.0",
+ "postcss": "^7.0.0",
+ "postcss-load-config": "^2.0.0",
+ "schema-utils": "^1.0.0"
+ }
+ },
+ "postcss-merge-longhand": {
+ "version": "4.0.11",
+ "resolved": "https://registry.npm.taobao.org/postcss-merge-longhand/download/postcss-merge-longhand-4.0.11.tgz",
+ "integrity": "sha1-YvSaE+Sg7gTnuY9CuxYGLKJUniQ=",
+ "dev": true,
+ "requires": {
+ "css-color-names": "0.0.4",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0",
+ "stylehacks": "^4.0.0"
+ }
+ },
+ "postcss-merge-rules": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npm.taobao.org/postcss-merge-rules/download/postcss-merge-rules-4.0.3.tgz",
+ "integrity": "sha1-NivqT/Wh+Y5AdacTxsslrv75plA=",
+ "dev": true,
+ "requires": {
+ "browserslist": "^4.0.0",
+ "caniuse-api": "^3.0.0",
+ "cssnano-util-same-parent": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-selector-parser": "^3.0.0",
+ "vendors": "^1.0.0"
+ },
+ "dependencies": {
+ "postcss-selector-parser": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.1.tgz",
+ "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=",
+ "dev": true,
+ "requires": {
+ "dot-prop": "^4.1.1",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ }
+ }
+ }
+ },
+ "postcss-minify-font-values": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npm.taobao.org/postcss-minify-font-values/download/postcss-minify-font-values-4.0.2.tgz",
+ "integrity": "sha1-zUw0TM5HQ0P6xdgiBqssvLiv1aY=",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ }
+ },
+ "postcss-minify-gradients": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npm.taobao.org/postcss-minify-gradients/download/postcss-minify-gradients-4.0.2.tgz",
+ "integrity": "sha1-k7KcL/UJnFNe7NpWxKpuZlpmNHE=",
+ "dev": true,
+ "requires": {
+ "cssnano-util-get-arguments": "^4.0.0",
+ "is-color-stop": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ }
+ },
+ "postcss-minify-params": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npm.taobao.org/postcss-minify-params/download/postcss-minify-params-4.0.2.tgz",
+ "integrity": "sha1-a5zvAwwR41Jh+V9hjJADbWgNuHQ=",
+ "dev": true,
+ "requires": {
+ "alphanum-sort": "^1.0.0",
+ "browserslist": "^4.0.0",
+ "cssnano-util-get-arguments": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0",
+ "uniqs": "^2.0.0"
+ }
+ },
+ "postcss-minify-selectors": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npm.taobao.org/postcss-minify-selectors/download/postcss-minify-selectors-4.0.2.tgz",
+ "integrity": "sha1-4uXrQL/uUA0M2SQ1APX46kJi+9g=",
+ "dev": true,
+ "requires": {
+ "alphanum-sort": "^1.0.0",
+ "has": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-selector-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss-selector-parser": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.1.tgz",
+ "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=",
+ "dev": true,
+ "requires": {
+ "dot-prop": "^4.1.1",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ }
+ }
+ }
+ },
+ "postcss-modules-extract-imports": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npm.taobao.org/postcss-modules-extract-imports/download/postcss-modules-extract-imports-1.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-extract-imports%2Fdownload%2Fpostcss-modules-extract-imports-1.2.1.tgz",
+ "integrity": "sha1-3IfjQUjsfqtfeR981YSYMzdbdBo=",
+ "dev": true,
+ "requires": {
+ "postcss": "^6.0.1"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npm.taobao.org/postcss/download/postcss-6.0.23.tgz",
+ "integrity": "sha1-YcgswyisYOZ3ZF+XkFTrmLwOMyQ=",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-modules-local-by-default": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npm.taobao.org/postcss-modules-local-by-default/download/postcss-modules-local-by-default-1.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-local-by-default%2Fdownload%2Fpostcss-modules-local-by-default-1.2.0.tgz",
+ "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=",
+ "dev": true,
+ "requires": {
+ "css-selector-tokenizer": "^0.7.0",
+ "postcss": "^6.0.1"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npm.taobao.org/postcss/download/postcss-6.0.23.tgz",
+ "integrity": "sha1-YcgswyisYOZ3ZF+XkFTrmLwOMyQ=",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-modules-scope": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npm.taobao.org/postcss-modules-scope/download/postcss-modules-scope-1.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-scope%2Fdownload%2Fpostcss-modules-scope-1.1.0.tgz",
+ "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=",
+ "dev": true,
+ "requires": {
+ "css-selector-tokenizer": "^0.7.0",
+ "postcss": "^6.0.1"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npm.taobao.org/postcss/download/postcss-6.0.23.tgz",
+ "integrity": "sha1-YcgswyisYOZ3ZF+XkFTrmLwOMyQ=",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-modules-values": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npm.taobao.org/postcss-modules-values/download/postcss-modules-values-1.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-values%2Fdownload%2Fpostcss-modules-values-1.3.0.tgz",
+ "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=",
+ "dev": true,
+ "requires": {
+ "icss-replace-symbols": "^1.1.0",
+ "postcss": "^6.0.1"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npm.taobao.org/postcss/download/postcss-6.0.23.tgz",
+ "integrity": "sha1-YcgswyisYOZ3ZF+XkFTrmLwOMyQ=",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-normalize-charset": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npm.taobao.org/postcss-normalize-charset/download/postcss-normalize-charset-4.0.1.tgz",
+ "integrity": "sha1-izWt067oOhNrBHHg1ZvlilAoXdQ=",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.0"
+ }
+ },
+ "postcss-normalize-display-values": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npm.taobao.org/postcss-normalize-display-values/download/postcss-normalize-display-values-4.0.2.tgz",
+ "integrity": "sha1-Db4EpM6QY9RmftK+R2u4MMglk1o=",
+ "dev": true,
+ "requires": {
+ "cssnano-util-get-match": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ }
+ },
+ "postcss-normalize-positions": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npm.taobao.org/postcss-normalize-positions/download/postcss-normalize-positions-4.0.2.tgz",
+ "integrity": "sha1-BfdX+E8mBDc3g2ipH4ky1LECkX8=",
+ "dev": true,
+ "requires": {
+ "cssnano-util-get-arguments": "^4.0.0",
+ "has": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ }
+ },
+ "postcss-normalize-repeat-style": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npm.taobao.org/postcss-normalize-repeat-style/download/postcss-normalize-repeat-style-4.0.2.tgz",
+ "integrity": "sha1-xOu8KJ85kaAo1EdRy90RkYsXkQw=",
+ "dev": true,
+ "requires": {
+ "cssnano-util-get-arguments": "^4.0.0",
+ "cssnano-util-get-match": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ }
+ },
+ "postcss-normalize-string": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npm.taobao.org/postcss-normalize-string/download/postcss-normalize-string-4.0.2.tgz",
+ "integrity": "sha1-zUTECrB6DHo23F6Zqs4eyk7CaQw=",
+ "dev": true,
+ "requires": {
+ "has": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ }
+ },
+ "postcss-normalize-timing-functions": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npm.taobao.org/postcss-normalize-timing-functions/download/postcss-normalize-timing-functions-4.0.2.tgz",
+ "integrity": "sha1-jgCcoqOUnNr4rSPmtquZy159KNk=",
+ "dev": true,
+ "requires": {
+ "cssnano-util-get-match": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ }
+ },
+ "postcss-normalize-unicode": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npm.taobao.org/postcss-normalize-unicode/download/postcss-normalize-unicode-4.0.1.tgz",
+ "integrity": "sha1-hBvUj9zzAZrUuqdJOj02O1KuHPs=",
+ "dev": true,
+ "requires": {
+ "browserslist": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ }
+ },
+ "postcss-normalize-url": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npm.taobao.org/postcss-normalize-url/download/postcss-normalize-url-4.0.1.tgz",
+ "integrity": "sha1-EOQ3+GvHx+WPe5ZS7YeNqqlfquE=",
+ "dev": true,
+ "requires": {
+ "is-absolute-url": "^2.0.0",
+ "normalize-url": "^3.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ }
+ },
+ "postcss-normalize-whitespace": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npm.taobao.org/postcss-normalize-whitespace/download/postcss-normalize-whitespace-4.0.2.tgz",
+ "integrity": "sha1-vx1AcP5Pzqh9E0joJdjMDF+qfYI=",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ }
+ },
+ "postcss-ordered-values": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npm.taobao.org/postcss-ordered-values/download/postcss-ordered-values-4.1.2.tgz",
+ "integrity": "sha1-DPdcgg7H1cTSgBiVWeC1ceusDu4=",
+ "dev": true,
+ "requires": {
+ "cssnano-util-get-arguments": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ }
+ },
+ "postcss-reduce-initial": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npm.taobao.org/postcss-reduce-initial/download/postcss-reduce-initial-4.0.3.tgz",
+ "integrity": "sha1-f9QuvqXpyBRgljniwuhK4nC6SN8=",
+ "dev": true,
+ "requires": {
+ "browserslist": "^4.0.0",
+ "caniuse-api": "^3.0.0",
+ "has": "^1.0.0",
+ "postcss": "^7.0.0"
+ }
+ },
+ "postcss-reduce-transforms": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npm.taobao.org/postcss-reduce-transforms/download/postcss-reduce-transforms-4.0.2.tgz",
+ "integrity": "sha1-F++kBerMbge+NBSlyi0QdGgdTik=",
+ "dev": true,
+ "requires": {
+ "cssnano-util-get-match": "^4.0.0",
+ "has": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ }
+ },
+ "postcss-selector-parser": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-5.0.0.tgz",
+ "integrity": "sha1-JJBENWaXsztk8aj3yAki3d7nGVw=",
+ "dev": true,
+ "requires": {
+ "cssesc": "^2.0.0",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ }
+ },
+ "postcss-svgo": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npm.taobao.org/postcss-svgo/download/postcss-svgo-4.0.2.tgz",
+ "integrity": "sha1-F7mXvHEbMzurFDqu07jT1uPTglg=",
+ "dev": true,
+ "requires": {
+ "is-svg": "^3.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0",
+ "svgo": "^1.0.0"
+ }
+ },
+ "postcss-unique-selectors": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npm.taobao.org/postcss-unique-selectors/download/postcss-unique-selectors-4.0.1.tgz",
+ "integrity": "sha1-lEaRHzKJv9ZMbWgPBzwDsfnuS6w=",
+ "dev": true,
+ "requires": {
+ "alphanum-sort": "^1.0.0",
+ "postcss": "^7.0.0",
+ "uniqs": "^2.0.0"
+ }
+ },
+ "postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=",
+ "dev": true
+ },
+ "prelude-ls": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz",
+ "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
+ "dev": true
+ },
+ "prepend-http": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npm.taobao.org/prepend-http/download/prepend-http-1.0.4.tgz",
+ "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=",
+ "dev": true
+ },
+ "prettier": {
+ "version": "1.16.3",
+ "resolved": "https://registry.npm.taobao.org/prettier/download/prettier-1.16.3.tgz",
+ "integrity": "sha1-jGIWhFO63vcC80tFtu6JlXSmpl0=",
+ "dev": true
+ },
+ "prettier-linter-helpers": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/prettier-linter-helpers/download/prettier-linter-helpers-1.0.0.tgz",
+ "integrity": "sha1-0j1B/hN1ZG3i0BBNNFSjAIgCz3s=",
+ "dev": true,
+ "requires": {
+ "fast-diff": "^1.1.2"
+ }
+ },
+ "pretty-error": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npm.taobao.org/pretty-error/download/pretty-error-2.1.1.tgz",
+ "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=",
+ "dev": true,
+ "requires": {
+ "renderkid": "^2.0.1",
+ "utila": "~0.4"
+ }
+ },
+ "private": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npm.taobao.org/private/download/private-0.1.8.tgz",
+ "integrity": "sha1-I4Hts2ifelPWUxkAYPz4ItLzaP8=",
+ "dev": true
+ },
+ "process": {
+ "version": "0.11.10",
+ "resolved": "https://registry.npm.taobao.org/process/download/process-0.11.10.tgz",
+ "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
+ "dev": true
+ },
+ "process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=",
+ "dev": true
+ },
+ "progress": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npm.taobao.org/progress/download/progress-2.0.3.tgz",
+ "integrity": "sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=",
+ "dev": true
+ },
+ "promise-inflight": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/promise-inflight/download/promise-inflight-1.0.1.tgz",
+ "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=",
+ "dev": true
+ },
+ "proxy-addr": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npm.taobao.org/proxy-addr/download/proxy-addr-2.0.5.tgz",
+ "integrity": "sha1-NMvWSi2B9LH9IedvnwbIpFKZ7jQ=",
+ "dev": true,
+ "requires": {
+ "forwarded": "~0.1.2",
+ "ipaddr.js": "1.9.0"
+ }
+ },
+ "prr": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/prr/download/prr-1.0.1.tgz",
+ "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
+ "dev": true
+ },
+ "pseudomap": {
+ "version": "1.0.2",
+ "resolved": "http://registry.npm.taobao.org/pseudomap/download/pseudomap-1.0.2.tgz",
+ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
+ "dev": true
+ },
+ "psl": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npm.taobao.org/psl/download/psl-1.4.0.tgz",
+ "integrity": "sha1-XdJhVs22n6H9uKsZkWZ9P4DO18I=",
+ "dev": true
+ },
+ "public-encrypt": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npm.taobao.org/public-encrypt/download/public-encrypt-4.0.3.tgz",
+ "integrity": "sha1-T8ydd6B+SLp1J+fL4N4z0HATMeA=",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.1.0",
+ "browserify-rsa": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "parse-asn1": "^5.0.0",
+ "randombytes": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "pump": {
+ "version": "3.0.0",
+ "resolved": "http://registry.npm.taobao.org/pump/download/pump-3.0.0.tgz",
+ "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "pumpify": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npm.taobao.org/pumpify/download/pumpify-1.5.1.tgz?cache=0&sync_timestamp=1569938200736&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpumpify%2Fdownload%2Fpumpify-1.5.1.tgz",
+ "integrity": "sha1-NlE74karJ1cLGjdKXOJ4v9dDcM4=",
+ "dev": true,
+ "requires": {
+ "duplexify": "^3.6.0",
+ "inherits": "^2.0.3",
+ "pump": "^2.0.0"
+ },
+ "dependencies": {
+ "pump": {
+ "version": "2.0.1",
+ "resolved": "http://registry.npm.taobao.org/pump/download/pump-2.0.1.tgz",
+ "integrity": "sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk=",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ }
+ }
+ },
+ "punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz",
+ "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=",
+ "dev": true
+ },
+ "q": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npm.taobao.org/q/download/q-1.5.1.tgz",
+ "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=",
+ "dev": true
+ },
+ "qs": {
+ "version": "6.5.2",
+ "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.5.2.tgz",
+ "integrity": "sha1-yzroBuh0BERYTvFUzo7pjUA/PjY=",
+ "dev": true
+ },
+ "query-string": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npm.taobao.org/query-string/download/query-string-4.3.4.tgz?cache=0&sync_timestamp=1567268249563&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fquery-string%2Fdownload%2Fquery-string-4.3.4.tgz",
+ "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=",
+ "dev": true,
+ "requires": {
+ "object-assign": "^4.1.0",
+ "strict-uri-encode": "^1.0.0"
+ }
+ },
+ "querystring": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npm.taobao.org/querystring/download/querystring-0.2.0.tgz",
+ "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=",
+ "dev": true
+ },
+ "querystring-es3": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npm.taobao.org/querystring-es3/download/querystring-es3-0.2.1.tgz",
+ "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=",
+ "dev": true
+ },
+ "querystringify": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npm.taobao.org/querystringify/download/querystringify-2.1.1.tgz",
+ "integrity": "sha1-YOWl/WSn+L+k0qsu1v30yFutFU4=",
+ "dev": true
+ },
+ "randombytes": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/randombytes/download/randombytes-2.1.0.tgz",
+ "integrity": "sha1-32+ENy8CcNxlzfYpE0mrekc9Tyo=",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "randomfill": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npm.taobao.org/randomfill/download/randomfill-1.0.4.tgz",
+ "integrity": "sha1-ySGW/IarQr6YPxvzF3giSTHWFFg=",
+ "dev": true,
+ "requires": {
+ "randombytes": "^2.0.5",
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "range-parser": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npm.taobao.org/range-parser/download/range-parser-1.2.1.tgz",
+ "integrity": "sha1-PPNwI9GZ4cJNGlW4SADC8+ZGgDE=",
+ "dev": true
+ },
+ "raw-body": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npm.taobao.org/raw-body/download/raw-body-2.4.0.tgz",
+ "integrity": "sha1-oc5vucm8NWylLoklarWQWeE9AzI=",
+ "dev": true,
+ "requires": {
+ "bytes": "3.1.0",
+ "http-errors": "1.7.2",
+ "iconv-lite": "0.4.24",
+ "unpipe": "1.0.0"
+ }
+ },
+ "read-pkg": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npm.taobao.org/read-pkg/download/read-pkg-5.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fread-pkg%2Fdownload%2Fread-pkg-5.2.0.tgz",
+ "integrity": "sha1-e/KVQ4yloz5WzTDgU7NO5yUMk8w=",
+ "dev": true,
+ "requires": {
+ "@types/normalize-package-data": "^2.4.0",
+ "normalize-package-data": "^2.5.0",
+ "parse-json": "^5.0.0",
+ "type-fest": "^0.6.0"
+ },
+ "dependencies": {
+ "parse-json": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-5.0.0.tgz",
+ "integrity": "sha1-c+URTJhtFD76NxLU6iTbmkJm9g8=",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1",
+ "lines-and-columns": "^1.1.6"
+ }
+ }
+ }
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.6.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-2.3.6.tgz",
+ "integrity": "sha1-sRwn2IuP8fvgcGQ8+UsMea4bCq8=",
+ "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"
+ }
+ },
+ "readdirp": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz",
+ "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.11",
+ "micromatch": "^3.1.10",
+ "readable-stream": "^2.0.2"
+ }
+ },
+ "regenerate": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npm.taobao.org/regenerate/download/regenerate-1.4.0.tgz",
+ "integrity": "sha1-SoVuxLVuQHfFV1icroXnpMiGmhE=",
+ "dev": true
+ },
+ "regenerate-unicode-properties": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npm.taobao.org/regenerate-unicode-properties/download/regenerate-unicode-properties-8.1.0.tgz",
+ "integrity": "sha1-71Hg8OpK1CS3e/fLQfPgFccKPw4=",
+ "dev": true,
+ "requires": {
+ "regenerate": "^1.4.0"
+ }
+ },
+ "regenerator-runtime": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz",
+ "integrity": "sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk="
+ },
+ "regenerator-transform": {
+ "version": "0.14.1",
+ "resolved": "https://registry.npm.taobao.org/regenerator-transform/download/regenerator-transform-0.14.1.tgz?cache=0&sync_timestamp=1563549978509&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-transform%2Fdownload%2Fregenerator-transform-0.14.1.tgz",
+ "integrity": "sha1-Oy/OThq3cywI9mXf2zFHScfd0vs=",
+ "dev": true,
+ "requires": {
+ "private": "^0.1.6"
+ }
+ },
+ "regex-not": {
+ "version": "1.0.2",
+ "resolved": "http://registry.npm.taobao.org/regex-not/download/regex-not-1.0.2.tgz",
+ "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^3.0.2",
+ "safe-regex": "^1.1.0"
+ }
+ },
+ "regexp.prototype.flags": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npm.taobao.org/regexp.prototype.flags/download/regexp.prototype.flags-1.2.0.tgz",
+ "integrity": "sha1-azByTjBqJ4M+6xcbZqyIkLo35Bw=",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.2"
+ }
+ },
+ "regexpp": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npm.taobao.org/regexpp/download/regexpp-1.1.0.tgz?cache=0&sync_timestamp=1567160849322&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpp%2Fdownload%2Fregexpp-1.1.0.tgz",
+ "integrity": "sha1-DjUW3Qt5BPQT0tQZPc5GGMOmias=",
+ "dev": true,
+ "optional": true
+ },
+ "regexpu-core": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npm.taobao.org/regexpu-core/download/regexpu-core-4.6.0.tgz?cache=0&sync_timestamp=1568375270709&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpu-core%2Fdownload%2Fregexpu-core-4.6.0.tgz",
+ "integrity": "sha1-IDfBizJ8/Oim/qKk7EQfJDKvuLY=",
+ "dev": true,
+ "requires": {
+ "regenerate": "^1.4.0",
+ "regenerate-unicode-properties": "^8.1.0",
+ "regjsgen": "^0.5.0",
+ "regjsparser": "^0.6.0",
+ "unicode-match-property-ecmascript": "^1.0.4",
+ "unicode-match-property-value-ecmascript": "^1.1.0"
+ }
+ },
+ "regjsgen": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npm.taobao.org/regjsgen/download/regjsgen-0.5.0.tgz",
+ "integrity": "sha1-p2NNwI+JIJwgSa3aNSVxH7lyZd0=",
+ "dev": true
+ },
+ "regjsparser": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npm.taobao.org/regjsparser/download/regjsparser-0.6.0.tgz",
+ "integrity": "sha1-8eaui32iuulsmTmbhozWyTOiupw=",
+ "dev": true,
+ "requires": {
+ "jsesc": "~0.5.0"
+ },
+ "dependencies": {
+ "jsesc": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-0.5.0.tgz",
+ "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
+ "dev": true
+ }
+ }
+ },
+ "relateurl": {
+ "version": "0.2.7",
+ "resolved": "https://registry.npm.taobao.org/relateurl/download/relateurl-0.2.7.tgz",
+ "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=",
+ "dev": true
+ },
+ "remove-trailing-separator": {
+ "version": "1.1.0",
+ "resolved": "http://registry.npm.taobao.org/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz",
+ "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
+ "dev": true
+ },
+ "renderkid": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npm.taobao.org/renderkid/download/renderkid-2.0.3.tgz",
+ "integrity": "sha1-OAF5wv9a4TZcUivy/Pz/AcW3QUk=",
+ "dev": true,
+ "requires": {
+ "css-select": "^1.1.0",
+ "dom-converter": "^0.2",
+ "htmlparser2": "^3.3.0",
+ "strip-ansi": "^3.0.0",
+ "utila": "^0.4.0"
+ },
+ "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
+ },
+ "css-select": {
+ "version": "1.2.0",
+ "resolved": "http://registry.npm.taobao.org/css-select/download/css-select-1.2.0.tgz",
+ "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
+ "dev": true,
+ "requires": {
+ "boolbase": "~1.0.0",
+ "css-what": "2.1",
+ "domutils": "1.5.1",
+ "nth-check": "~1.0.1"
+ }
+ },
+ "domutils": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npm.taobao.org/domutils/download/domutils-1.5.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomutils%2Fdownload%2Fdomutils-1.5.1.tgz",
+ "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
+ "dev": true,
+ "requires": {
+ "dom-serializer": "0",
+ "domelementtype": "1"
+ }
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "repeat-element": {
+ "version": "1.1.3",
+ "resolved": "http://registry.npm.taobao.org/repeat-element/download/repeat-element-1.1.3.tgz",
+ "integrity": "sha1-eC4NglwMWjuzlzH4Tv7mt0Lmsc4=",
+ "dev": true
+ },
+ "repeat-string": {
+ "version": "1.6.1",
+ "resolved": "http://registry.npm.taobao.org/repeat-string/download/repeat-string-1.6.1.tgz",
+ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
+ "dev": true
+ },
+ "request": {
+ "version": "2.88.0",
+ "resolved": "https://registry.npm.taobao.org/request/download/request-2.88.0.tgz",
+ "integrity": "sha1-nC/KT301tZLv5Xx/ClXoEFIST+8=",
+ "dev": true,
+ "requires": {
+ "aws-sign2": "~0.7.0",
+ "aws4": "^1.8.0",
+ "caseless": "~0.12.0",
+ "combined-stream": "~1.0.6",
+ "extend": "~3.0.2",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.3.2",
+ "har-validator": "~5.1.0",
+ "http-signature": "~1.2.0",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.19",
+ "oauth-sign": "~0.9.0",
+ "performance-now": "^2.1.0",
+ "qs": "~6.5.2",
+ "safe-buffer": "^5.1.2",
+ "tough-cookie": "~2.4.3",
+ "tunnel-agent": "^0.6.0",
+ "uuid": "^3.3.2"
+ }
+ },
+ "request-promise-core": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npm.taobao.org/request-promise-core/download/request-promise-core-1.1.2.tgz",
+ "integrity": "sha1-M59qq6vK/bMceZ/xWHADNjAdM0Y=",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.11"
+ }
+ },
+ "request-promise-native": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npm.taobao.org/request-promise-native/download/request-promise-native-1.0.7.tgz",
+ "integrity": "sha1-pJhopiS96lBp8SUdCoNuDYmqLFk=",
+ "dev": true,
+ "requires": {
+ "request-promise-core": "1.1.2",
+ "stealthy-require": "^1.1.1",
+ "tough-cookie": "^2.3.3"
+ }
+ },
+ "require-directory": {
+ "version": "2.1.1",
+ "resolved": "http://registry.npm.taobao.org/require-directory/download/require-directory-2.1.1.tgz",
+ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
+ "dev": true
+ },
+ "require-main-filename": {
+ "version": "2.0.0",
+ "resolved": "http://registry.npm.taobao.org/require-main-filename/download/require-main-filename-2.0.0.tgz",
+ "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=",
+ "dev": true
+ },
+ "require-uncached": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npm.taobao.org/require-uncached/download/require-uncached-1.0.3.tgz",
+ "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "caller-path": "^0.1.0",
+ "resolve-from": "^1.0.0"
+ }
+ },
+ "requires-port": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/requires-port/download/requires-port-1.0.0.tgz",
+ "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
+ "dev": true
+ },
+ "reselect": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npm.taobao.org/reselect/download/reselect-3.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freselect%2Fdownload%2Freselect-3.0.1.tgz",
+ "integrity": "sha1-79qpjqdFEyTQkrKyFjpqHXqaIUc=",
+ "dev": true
+ },
+ "resize-observer-polyfill": {
+ "version": "1.5.1",
+ "resolved": "http://registry.npm.taobao.org/resize-observer-polyfill/download/resize-observer-polyfill-1.5.1.tgz",
+ "integrity": "sha1-DpAg3T0hAkRY1OvSfiPkAmmBBGQ="
+ },
+ "resolve": {
+ "version": "1.12.0",
+ "resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.12.0.tgz?cache=0&sync_timestamp=1564641434608&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve%2Fdownload%2Fresolve-1.12.0.tgz",
+ "integrity": "sha1-P8ZEo1yEpIVUYJ/ybsUrZvpXffY=",
+ "dev": true,
+ "requires": {
+ "path-parse": "^1.0.6"
+ }
+ },
+ "resolve-cwd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/resolve-cwd/download/resolve-cwd-2.0.0.tgz",
+ "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=",
+ "dev": true,
+ "requires": {
+ "resolve-from": "^3.0.0"
+ },
+ "dependencies": {
+ "resolve-from": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz",
+ "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
+ "dev": true
+ }
+ }
+ },
+ "resolve-from": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-1.0.1.tgz",
+ "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=",
+ "dev": true,
+ "optional": true
+ },
+ "resolve-url": {
+ "version": "0.2.1",
+ "resolved": "http://registry.npm.taobao.org/resolve-url/download/resolve-url-0.2.1.tgz",
+ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
+ "dev": true
+ },
+ "restore-cursor": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/restore-cursor/download/restore-cursor-2.0.0.tgz",
+ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
+ "dev": true,
+ "requires": {
+ "onetime": "^2.0.0",
+ "signal-exit": "^3.0.2"
+ }
+ },
+ "ret": {
+ "version": "0.1.15",
+ "resolved": "https://registry.npm.taobao.org/ret/download/ret-0.1.15.tgz",
+ "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=",
+ "dev": true
+ },
+ "retry": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npm.taobao.org/retry/download/retry-0.12.0.tgz",
+ "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=",
+ "dev": true
+ },
+ "rgb-regex": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/rgb-regex/download/rgb-regex-1.0.1.tgz",
+ "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=",
+ "dev": true
+ },
+ "rgba-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/rgba-regex/download/rgba-regex-1.0.0.tgz",
+ "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=",
+ "dev": true
+ },
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz",
+ "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "ripemd160": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npm.taobao.org/ripemd160/download/ripemd160-2.0.2.tgz",
+ "integrity": "sha1-ocGm9iR1FXe6XQeRTLyShQWFiQw=",
+ "dev": true,
+ "requires": {
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1"
+ }
+ },
+ "run-async": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npm.taobao.org/run-async/download/run-async-2.3.0.tgz",
+ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
+ "dev": true,
+ "requires": {
+ "is-promise": "^2.1.0"
+ }
+ },
+ "run-queue": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npm.taobao.org/run-queue/download/run-queue-1.0.3.tgz",
+ "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=",
+ "dev": true,
+ "requires": {
+ "aproba": "^1.1.1"
+ }
+ },
+ "rx-lite": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npm.taobao.org/rx-lite/download/rx-lite-4.0.8.tgz",
+ "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=",
+ "dev": true,
+ "optional": true
+ },
+ "rx-lite-aggregates": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npm.taobao.org/rx-lite-aggregates/download/rx-lite-aggregates-4.0.8.tgz",
+ "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "rx-lite": "*"
+ }
+ },
+ "rxjs": {
+ "version": "6.5.3",
+ "resolved": "https://registry.npm.taobao.org/rxjs/download/rxjs-6.5.3.tgz?cache=0&sync_timestamp=1568815682378&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frxjs%2Fdownload%2Frxjs-6.5.3.tgz",
+ "integrity": "sha1-UQ4mMX9NuRp+sd532d2boKSJmjo=",
+ "dev": true,
+ "requires": {
+ "tslib": "^1.9.0"
+ }
+ },
+ "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
+ },
+ "safe-regex": {
+ "version": "1.1.0",
+ "resolved": "http://registry.npm.taobao.org/safe-regex/download/safe-regex-1.1.0.tgz",
+ "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
+ "dev": true,
+ "requires": {
+ "ret": "~0.1.10"
+ }
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "http://registry.npm.taobao.org/safer-buffer/download/safer-buffer-2.1.2.tgz",
+ "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=",
+ "dev": true
+ },
+ "sass": {
+ "version": "1.23.0",
+ "resolved": "https://registry.npm.taobao.org/sass/download/sass-1.23.0.tgz",
+ "integrity": "sha1-vVJv9A28XQmk7Wniz/qEl0mXdxA=",
+ "dev": true,
+ "requires": {
+ "chokidar": ">=2.0.0 <4.0.0"
+ }
+ },
+ "sass-loader": {
+ "version": "7.3.1",
+ "resolved": "https://registry.npm.taobao.org/sass-loader/download/sass-loader-7.3.1.tgz",
+ "integrity": "sha1-pb9ooEvOocE/+ELXRxUPerfQ0j8=",
+ "dev": true,
+ "requires": {
+ "clone-deep": "^4.0.1",
+ "loader-utils": "^1.0.1",
+ "neo-async": "^2.5.0",
+ "pify": "^4.0.1",
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1565627380363&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz",
+ "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=",
+ "dev": true
+ }
+ }
+ },
+ "sax": {
+ "version": "1.2.4",
+ "resolved": "http://registry.npm.taobao.org/sax/download/sax-1.2.4.tgz",
+ "integrity": "sha1-KBYjTiN4vdxOU1T6tcqold9xANk=",
+ "dev": true
+ },
+ "schema-utils": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz",
+ "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.1.0",
+ "ajv-errors": "^1.0.0",
+ "ajv-keywords": "^3.1.0"
+ }
+ },
+ "select-hose": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/select-hose/download/select-hose-2.0.0.tgz",
+ "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=",
+ "dev": true
+ },
+ "selfsigned": {
+ "version": "1.10.7",
+ "resolved": "https://registry.npm.taobao.org/selfsigned/download/selfsigned-1.10.7.tgz?cache=0&sync_timestamp=1569952074772&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fselfsigned%2Fdownload%2Fselfsigned-1.10.7.tgz",
+ "integrity": "sha1-2lgZ/QSdVXTyjoipvMbbxubzkGs=",
+ "dev": true,
+ "requires": {
+ "node-forge": "0.9.0"
+ }
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1565627380363&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz",
+ "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=",
+ "dev": true
+ },
+ "send": {
+ "version": "0.17.1",
+ "resolved": "https://registry.npm.taobao.org/send/download/send-0.17.1.tgz",
+ "integrity": "sha1-wdiwWfeQD3Rm3Uk4vcROEd2zdsg=",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "destroy": "~1.0.4",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "fresh": "0.5.2",
+ "http-errors": "~1.7.2",
+ "mime": "1.6.0",
+ "ms": "2.1.1",
+ "on-finished": "~2.3.0",
+ "range-parser": "~1.2.1",
+ "statuses": "~1.5.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "http://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz",
+ "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "mime": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npm.taobao.org/mime/download/mime-1.6.0.tgz?cache=0&sync_timestamp=1560034758817&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-1.6.0.tgz",
+ "integrity": "sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE=",
+ "dev": true
+ },
+ "ms": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.1.tgz",
+ "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=",
+ "dev": true
+ }
+ }
+ },
+ "serialize-javascript": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-1.9.1.tgz?cache=0&sync_timestamp=1567600506467&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-1.9.1.tgz",
+ "integrity": "sha1-z8IArvd7YAxH2pu4FJyUPnmML9s=",
+ "dev": true
+ },
+ "serve-index": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npm.taobao.org/serve-index/download/serve-index-1.9.1.tgz",
+ "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=",
+ "dev": true,
+ "requires": {
+ "accepts": "~1.3.4",
+ "batch": "0.6.1",
+ "debug": "2.6.9",
+ "escape-html": "~1.0.3",
+ "http-errors": "~1.6.2",
+ "mime-types": "~2.1.17",
+ "parseurl": "~1.3.2"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "http://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz",
+ "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "http-errors": {
+ "version": "1.6.3",
+ "resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.6.3.tgz?cache=0&sync_timestamp=1561418493658&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.6.3.tgz",
+ "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
+ "dev": true,
+ "requires": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.3",
+ "setprototypeof": "1.1.0",
+ "statuses": ">= 1.4.0 < 2"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz?cache=0&sync_timestamp=1560975547815&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "dev": true
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ },
+ "setprototypeof": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.0.tgz?cache=0&sync_timestamp=1563425414995&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsetprototypeof%2Fdownload%2Fsetprototypeof-1.1.0.tgz",
+ "integrity": "sha1-0L2FU2iHtv58DYGMuWLZ2RxU5lY=",
+ "dev": true
+ }
+ }
+ },
+ "serve-static": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npm.taobao.org/serve-static/download/serve-static-1.14.1.tgz",
+ "integrity": "sha1-Zm5jbcTwEPfvKZcKiKZ0MgiYsvk=",
+ "dev": true,
+ "requires": {
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.3",
+ "send": "0.17.1"
+ }
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "resolved": "http://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz",
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
+ "dev": true
+ },
+ "set-value": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/set-value/download/set-value-2.0.1.tgz",
+ "integrity": "sha1-oY1AUw5vB95CKMfe/kInr4ytAFs=",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^2.0.1",
+ "is-extendable": "^0.1.1",
+ "is-plain-object": "^2.0.3",
+ "split-string": "^3.0.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "setimmediate": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npm.taobao.org/setimmediate/download/setimmediate-1.0.5.tgz",
+ "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=",
+ "dev": true
+ },
+ "setprototypeof": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.1.tgz?cache=0&sync_timestamp=1563425414995&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsetprototypeof%2Fdownload%2Fsetprototypeof-1.1.1.tgz",
+ "integrity": "sha1-fpWsskqpL1iF4KvvW6ExMw1K5oM=",
+ "dev": true
+ },
+ "sha.js": {
+ "version": "2.4.11",
+ "resolved": "https://registry.npm.taobao.org/sha.js/download/sha.js-2.4.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsha.js%2Fdownload%2Fsha.js-2.4.11.tgz",
+ "integrity": "sha1-N6XPC4HsvGlD3hCbopYNGyZYSuc=",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "shallow-clone": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npm.taobao.org/shallow-clone/download/shallow-clone-3.0.1.tgz",
+ "integrity": "sha1-jymBrZJTH1UDWwH7IwdppA4C76M=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.2"
+ }
+ },
+ "shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-1.2.0.tgz",
+ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "^1.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-1.0.0.tgz",
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
+ "dev": true
+ },
+ "shell-quote": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npm.taobao.org/shell-quote/download/shell-quote-1.7.2.tgz",
+ "integrity": "sha1-Z6fQLHbJ2iT5nSCAj8re0ODgS+I=",
+ "dev": true
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "resolved": "http://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.2.tgz",
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
+ "dev": true
+ },
+ "simple-swizzle": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npm.taobao.org/simple-swizzle/download/simple-swizzle-0.2.2.tgz",
+ "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=",
+ "dev": true,
+ "requires": {
+ "is-arrayish": "^0.3.1"
+ },
+ "dependencies": {
+ "is-arrayish": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.3.2.tgz",
+ "integrity": "sha1-RXSirlb3qyBolvtDHq7tBm/fjwM=",
+ "dev": true
+ }
+ }
+ },
+ "slash": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/slash/download/slash-2.0.0.tgz",
+ "integrity": "sha1-3lUoUaF1nfOo8gZTVEL17E3eq0Q=",
+ "dev": true
+ },
+ "slice-ansi": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/slice-ansi/download/slice-ansi-1.0.0.tgz",
+ "integrity": "sha1-BE8aSdiEL/MHqta1Be0Xi9lQE00=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0"
+ }
+ },
+ "snapdragon": {
+ "version": "0.8.2",
+ "resolved": "http://registry.npm.taobao.org/snapdragon/download/snapdragon-0.8.2.tgz",
+ "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=",
+ "dev": true,
+ "requires": {
+ "base": "^0.11.1",
+ "debug": "^2.2.0",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "map-cache": "^0.2.2",
+ "source-map": "^0.5.6",
+ "source-map-resolve": "^0.5.0",
+ "use": "^3.1.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "http://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz",
+ "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "snapdragon-node": {
+ "version": "2.1.1",
+ "resolved": "http://registry.npm.taobao.org/snapdragon-node/download/snapdragon-node-2.1.1.tgz",
+ "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=",
+ "dev": true,
+ "requires": {
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.0",
+ "snapdragon-util": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "http://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": "http://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": "http://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": "http://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"
+ }
+ }
+ }
+ },
+ "snapdragon-util": {
+ "version": "3.0.1",
+ "resolved": "http://registry.npm.taobao.org/snapdragon-util/download/snapdragon-util-3.0.1.tgz",
+ "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.2.0"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "sockjs": {
+ "version": "0.3.19",
+ "resolved": "https://registry.npm.taobao.org/sockjs/download/sockjs-0.3.19.tgz",
+ "integrity": "sha1-2Xa76ACve9IK4IWY1YI5NQiZPA0=",
+ "dev": true,
+ "requires": {
+ "faye-websocket": "^0.10.0",
+ "uuid": "^3.0.1"
+ }
+ },
+ "sockjs-client": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npm.taobao.org/sockjs-client/download/sockjs-client-1.4.0.tgz?cache=0&sync_timestamp=1566505930428&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsockjs-client%2Fdownload%2Fsockjs-client-1.4.0.tgz",
+ "integrity": "sha1-yfJWjhnI/YFztJl+o0IOC7MGx9U=",
+ "dev": true,
+ "requires": {
+ "debug": "^3.2.5",
+ "eventsource": "^1.0.7",
+ "faye-websocket": "~0.11.1",
+ "inherits": "^2.0.3",
+ "json3": "^3.3.2",
+ "url-parse": "^1.4.3"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.6",
+ "resolved": "http://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz",
+ "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "faye-websocket": {
+ "version": "0.11.3",
+ "resolved": "https://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.11.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffaye-websocket%2Fdownload%2Ffaye-websocket-0.11.3.tgz",
+ "integrity": "sha1-XA6aiWjokSwoZjn96XeosgnyUI4=",
+ "dev": true,
+ "requires": {
+ "websocket-driver": ">=0.5.1"
+ }
+ }
+ }
+ },
+ "sort-keys": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npm.taobao.org/sort-keys/download/sort-keys-1.1.2.tgz?cache=0&sync_timestamp=1565864727994&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsort-keys%2Fdownload%2Fsort-keys-1.1.2.tgz",
+ "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=",
+ "dev": true,
+ "requires": {
+ "is-plain-obj": "^1.0.0"
+ }
+ },
+ "source-list-map": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/source-list-map/download/source-list-map-2.0.1.tgz",
+ "integrity": "sha1-OZO9hzv8SEecyp6jpUeDXHwVSzQ=",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "source-map-resolve": {
+ "version": "0.5.2",
+ "resolved": "http://registry.npm.taobao.org/source-map-resolve/download/source-map-resolve-0.5.2.tgz",
+ "integrity": "sha1-cuLMNAlVQ+Q7LGKyxMENSpBU8lk=",
+ "dev": true,
+ "requires": {
+ "atob": "^2.1.1",
+ "decode-uri-component": "^0.2.0",
+ "resolve-url": "^0.2.1",
+ "source-map-url": "^0.4.0",
+ "urix": "^0.1.0"
+ }
+ },
+ "source-map-support": {
+ "version": "0.5.13",
+ "resolved": "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.5.13.tgz",
+ "integrity": "sha1-MbJKnC5zwt6FBmwP631Edn7VKTI=",
+ "dev": true,
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "source-map-url": {
+ "version": "0.4.0",
+ "resolved": "http://registry.npm.taobao.org/source-map-url/download/source-map-url-0.4.0.tgz",
+ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
+ "dev": true
+ },
+ "spdx-correct": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.1.0.tgz",
+ "integrity": "sha1-+4PlBERSaPFUsHTiGMh8ADzTHfQ=",
+ "dev": true,
+ "requires": {
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-exceptions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npm.taobao.org/spdx-exceptions/download/spdx-exceptions-2.2.0.tgz",
+ "integrity": "sha1-LqRQrudPKom/uUUZwH/Nb0EyKXc=",
+ "dev": true
+ },
+ "spdx-expression-parse": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/spdx-expression-parse/download/spdx-expression-parse-3.0.0.tgz",
+ "integrity": "sha1-meEZt6XaAOBUkcn6M4t5BII7QdA=",
+ "dev": true,
+ "requires": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-license-ids": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npm.taobao.org/spdx-license-ids/download/spdx-license-ids-3.0.5.tgz",
+ "integrity": "sha1-NpS1gEVnpFjTyARYQqY1hjL2JlQ=",
+ "dev": true
+ },
+ "spdy": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npm.taobao.org/spdy/download/spdy-4.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdy%2Fdownload%2Fspdy-4.0.1.tgz",
+ "integrity": "sha1-bxLtHF236k8k67i4m6WMh8CCV/I=",
+ "dev": true,
+ "requires": {
+ "debug": "^4.1.0",
+ "handle-thing": "^2.0.0",
+ "http-deceiver": "^1.2.7",
+ "select-hose": "^2.0.0",
+ "spdy-transport": "^3.0.0"
+ }
+ },
+ "spdy-transport": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/spdy-transport/download/spdy-transport-3.0.0.tgz",
+ "integrity": "sha1-ANSGOmQArXXfkzYaFghgXl3NzzE=",
+ "dev": true,
+ "requires": {
+ "debug": "^4.1.0",
+ "detect-node": "^2.0.4",
+ "hpack.js": "^2.1.6",
+ "obuf": "^1.1.2",
+ "readable-stream": "^3.0.6",
+ "wbuf": "^1.7.3"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.4.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.4.0.tgz",
+ "integrity": "sha1-pRwmdUZY4KPCHb9ZFjvUW6b0R/w=",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "split-string": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npm.taobao.org/split-string/download/split-string-3.1.0.tgz",
+ "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^3.0.0"
+ }
+ },
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "http://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+ "dev": true
+ },
+ "sshpk": {
+ "version": "1.16.1",
+ "resolved": "https://registry.npm.taobao.org/sshpk/download/sshpk-1.16.1.tgz",
+ "integrity": "sha1-+2YcC+8ps520B2nuOfpwCT1vaHc=",
+ "dev": true,
+ "requires": {
+ "asn1": "~0.2.3",
+ "assert-plus": "^1.0.0",
+ "bcrypt-pbkdf": "^1.0.0",
+ "dashdash": "^1.12.0",
+ "ecc-jsbn": "~0.1.1",
+ "getpass": "^0.1.1",
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.0.2",
+ "tweetnacl": "~0.14.0"
+ }
+ },
+ "ssri": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-6.0.1.tgz",
+ "integrity": "sha1-KjxBso3UW2K2Nnbst0ABJlrp7dg=",
+ "dev": true,
+ "requires": {
+ "figgy-pudding": "^3.5.1"
+ }
+ },
+ "stable": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npm.taobao.org/stable/download/stable-0.1.8.tgz",
+ "integrity": "sha1-g26zyDgv4pNv6vVEYxAXzn1Ho88=",
+ "dev": true
+ },
+ "stackframe": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npm.taobao.org/stackframe/download/stackframe-1.1.0.tgz",
+ "integrity": "sha1-4/wuuRIllHnJgi99Hx/zZb1cvIM=",
+ "dev": true
+ },
+ "static-extend": {
+ "version": "0.1.2",
+ "resolved": "http://registry.npm.taobao.org/static-extend/download/static-extend-0.1.2.tgz",
+ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
+ "dev": true,
+ "requires": {
+ "define-property": "^0.2.5",
+ "object-copy": "^0.1.0"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ }
+ }
+ },
+ "statuses": {
+ "version": "1.5.0",
+ "resolved": "http://registry.npm.taobao.org/statuses/download/statuses-1.5.0.tgz",
+ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
+ "dev": true
+ },
+ "stealthy-require": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npm.taobao.org/stealthy-require/download/stealthy-require-1.1.1.tgz",
+ "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=",
+ "dev": true
+ },
+ "stream-browserify": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npm.taobao.org/stream-browserify/download/stream-browserify-2.0.2.tgz",
+ "integrity": "sha1-h1IdOKRKp+6RzhzSpH3wy0ndZgs=",
+ "dev": true,
+ "requires": {
+ "inherits": "~2.0.1",
+ "readable-stream": "^2.0.2"
+ }
+ },
+ "stream-each": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npm.taobao.org/stream-each/download/stream-each-1.2.3.tgz",
+ "integrity": "sha1-6+J6DDibBPvMIzZClS4Qcxr6m64=",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "stream-shift": "^1.0.0"
+ }
+ },
+ "stream-http": {
+ "version": "2.8.3",
+ "resolved": "https://registry.npm.taobao.org/stream-http/download/stream-http-2.8.3.tgz",
+ "integrity": "sha1-stJCRpKIpaJ+xP6JM6z2I95lFPw=",
+ "dev": true,
+ "requires": {
+ "builtin-status-codes": "^3.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.3.6",
+ "to-arraybuffer": "^1.0.0",
+ "xtend": "^4.0.0"
+ }
+ },
+ "stream-shift": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/stream-shift/download/stream-shift-1.0.0.tgz",
+ "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=",
+ "dev": true
+ },
+ "strict-uri-encode": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npm.taobao.org/strict-uri-encode/download/strict-uri-encode-1.1.0.tgz",
+ "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz",
+ "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ }
+ }
+ },
+ "string.prototype.padend": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/string.prototype.padend/download/string.prototype.padend-3.0.0.tgz",
+ "integrity": "sha1-86rvfBcZ8XDF6rHDK/eA2W4h8vA=",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.2",
+ "es-abstract": "^1.4.3",
+ "function-bind": "^1.0.2"
+ }
+ },
+ "string.prototype.padstart": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/string.prototype.padstart/download/string.prototype.padstart-3.0.0.tgz",
+ "integrity": "sha1-W8+tOfRkm7LQMSkuGbzwtRDUskI=",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.2",
+ "es-abstract": "^1.4.3",
+ "function-bind": "^1.0.2"
+ }
+ },
+ "string.prototype.trimleft": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/string.prototype.trimleft/download/string.prototype.trimleft-2.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimleft%2Fdownload%2Fstring.prototype.trimleft-2.1.0.tgz",
+ "integrity": "sha1-bMR/DX641isPNwFhFxWjlUWR1jQ=",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "function-bind": "^1.1.1"
+ }
+ },
+ "string.prototype.trimright": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/string.prototype.trimright/download/string.prototype.trimright-2.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimright%2Fdownload%2Fstring.prototype.trimright-2.1.0.tgz",
+ "integrity": "sha1-Zp0WS+nfm291WfqOiZRbFopabFg=",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "function-bind": "^1.1.1"
+ }
+ },
+ "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"
+ }
+ },
+ "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"
+ }
+ },
+ "strip-eof": {
+ "version": "1.0.0",
+ "resolved": "http://registry.npm.taobao.org/strip-eof/download/strip-eof-1.0.0.tgz",
+ "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
+ "dev": true
+ },
+ "strip-final-newline": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/strip-final-newline/download/strip-final-newline-2.0.0.tgz",
+ "integrity": "sha1-ibhS+y/L6Tb29LMYevsKEsGrWK0=",
+ "dev": true
+ },
+ "strip-indent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/strip-indent/download/strip-indent-2.0.0.tgz",
+ "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=",
+ "dev": true
+ },
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-2.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-json-comments%2Fdownload%2Fstrip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
+ "dev": true
+ },
+ "stylehacks": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npm.taobao.org/stylehacks/download/stylehacks-4.0.3.tgz",
+ "integrity": "sha1-Zxj8r00eB9ihMYaQiB6NlnJqcdU=",
+ "dev": true,
+ "requires": {
+ "browserslist": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-selector-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss-selector-parser": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.1.tgz",
+ "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=",
+ "dev": true,
+ "requires": {
+ "dot-prop": "^4.1.1",
+ "indexes-of": "^1.0.1",
+ "uniq": "^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&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"
+ }
+ },
+ "svg-tags": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/svg-tags/download/svg-tags-1.0.0.tgz",
+ "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=",
+ "dev": true
+ },
+ "svgo": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npm.taobao.org/svgo/download/svgo-1.3.0.tgz",
+ "integrity": "sha1-uuUbqV3tmjOja3xGzpw1mukVQxM=",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "coa": "^2.0.2",
+ "css-select": "^2.0.0",
+ "css-select-base-adapter": "^0.1.1",
+ "css-tree": "1.0.0-alpha.33",
+ "csso": "^3.5.1",
+ "js-yaml": "^3.13.1",
+ "mkdirp": "~0.5.1",
+ "object.values": "^1.1.0",
+ "sax": "~1.2.4",
+ "stable": "^0.1.8",
+ "unquote": "~1.1.1",
+ "util.promisify": "~1.0.0"
+ }
+ },
+ "table": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npm.taobao.org/table/download/table-4.0.2.tgz",
+ "integrity": "sha1-ozRHN1OR52atNNNIbm4q7chNLjY=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ajv": "^5.2.3",
+ "ajv-keywords": "^2.1.0",
+ "chalk": "^2.1.0",
+ "lodash": "^4.17.4",
+ "slice-ansi": "1.0.0",
+ "string-width": "^2.1.1"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "5.5.2",
+ "resolved": "https://registry.npm.taobao.org/ajv/download/ajv-5.5.2.tgz",
+ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "co": "^4.6.0",
+ "fast-deep-equal": "^1.0.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.3.0"
+ }
+ },
+ "ajv-keywords": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-2.1.1.tgz",
+ "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=",
+ "dev": true,
+ "optional": true
+ },
+ "fast-deep-equal": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-1.1.0.tgz",
+ "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=",
+ "dev": true,
+ "optional": true
+ },
+ "json-schema-traverse": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.3.1.tgz",
+ "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "tapable": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npm.taobao.org/tapable/download/tapable-1.1.3.tgz",
+ "integrity": "sha1-ofzMBrWNth/XpF2i2kT186Pme6I=",
+ "dev": true
+ },
+ "terser": {
+ "version": "4.3.8",
+ "resolved": "https://registry.npm.taobao.org/terser/download/terser-4.3.8.tgz",
+ "integrity": "sha1-cH8F8/TBxwyEDmJq3f2xwVihcTY=",
+ "dev": true,
+ "requires": {
+ "commander": "^2.20.0",
+ "source-map": "~0.6.1",
+ "source-map-support": "~0.5.12"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "terser-webpack-plugin": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-1.4.1.tgz",
+ "integrity": "sha1-YbGOQOruW+l+dxzbsQ7RKAiIwrQ=",
+ "dev": true,
+ "requires": {
+ "cacache": "^12.0.2",
+ "find-cache-dir": "^2.1.0",
+ "is-wsl": "^1.1.0",
+ "schema-utils": "^1.0.0",
+ "serialize-javascript": "^1.7.0",
+ "source-map": "^0.6.1",
+ "terser": "^4.1.2",
+ "webpack-sources": "^1.4.0",
+ "worker-farm": "^1.7.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "text-table": {
+ "version": "0.2.0",
+ "resolved": "http://registry.npm.taobao.org/text-table/download/text-table-0.2.0.tgz",
+ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
+ "dev": true
+ },
+ "thenify": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npm.taobao.org/thenify/download/thenify-3.3.0.tgz",
+ "integrity": "sha1-5p44obq+lpsBCCB5eLn2K4hgSDk=",
+ "dev": true,
+ "requires": {
+ "any-promise": "^1.0.0"
+ }
+ },
+ "thenify-all": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npm.taobao.org/thenify-all/download/thenify-all-1.6.0.tgz",
+ "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=",
+ "dev": true,
+ "requires": {
+ "thenify": ">= 3.1.0 < 4"
+ }
+ },
+ "thread-loader": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npm.taobao.org/thread-loader/download/thread-loader-2.1.3.tgz",
+ "integrity": "sha1-y9LBOfwrLebp0o9iKGq3cMGsvdo=",
+ "dev": true,
+ "requires": {
+ "loader-runner": "^2.3.1",
+ "loader-utils": "^1.1.0",
+ "neo-async": "^2.6.0"
+ }
+ },
+ "throttle-debounce": {
+ "version": "1.1.0",
+ "resolved": "http://registry.npm.taobao.org/throttle-debounce/download/throttle-debounce-1.1.0.tgz",
+ "integrity": "sha1-UYU9o3vmihVctugns1FKPEIuic0="
+ },
+ "through": {
+ "version": "2.3.8",
+ "resolved": "http://registry.npm.taobao.org/through/download/through-2.3.8.tgz",
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
+ "dev": true
+ },
+ "through2": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz",
+ "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=",
+ "dev": true,
+ "requires": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ }
+ },
+ "thunky": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npm.taobao.org/thunky/download/thunky-1.0.3.tgz",
+ "integrity": "sha1-9d9zJFNAewkZHa5z4qjMc/OBqCY=",
+ "dev": true
+ },
+ "timers-browserify": {
+ "version": "2.0.11",
+ "resolved": "https://registry.npm.taobao.org/timers-browserify/download/timers-browserify-2.0.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftimers-browserify%2Fdownload%2Ftimers-browserify-2.0.11.tgz",
+ "integrity": "sha1-gAsfPu4nLlvFPuRloE0OgEwxIR8=",
+ "dev": true,
+ "requires": {
+ "setimmediate": "^1.0.4"
+ }
+ },
+ "timsort": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npm.taobao.org/timsort/download/timsort-0.3.0.tgz",
+ "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
+ "dev": true
+ },
+ "tmp": {
+ "version": "0.0.33",
+ "resolved": "https://registry.npm.taobao.org/tmp/download/tmp-0.0.33.tgz",
+ "integrity": "sha1-bTQzWIl2jSGyvNoKonfO07G/rfk=",
+ "dev": true,
+ "requires": {
+ "os-tmpdir": "~1.0.2"
+ }
+ },
+ "to-arraybuffer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/to-arraybuffer/download/to-arraybuffer-1.0.1.tgz",
+ "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=",
+ "dev": true
+ },
+ "to-fast-properties": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-2.0.0.tgz",
+ "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
+ "dev": true
+ },
+ "to-object-path": {
+ "version": "0.3.0",
+ "resolved": "http://registry.npm.taobao.org/to-object-path/download/to-object-path-0.3.0.tgz",
+ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "to-regex": {
+ "version": "3.0.2",
+ "resolved": "http://registry.npm.taobao.org/to-regex/download/to-regex-3.0.2.tgz",
+ "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=",
+ "dev": true,
+ "requires": {
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "regex-not": "^1.0.2",
+ "safe-regex": "^1.1.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz",
+ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+ "dev": true,
+ "requires": {
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1"
+ }
+ },
+ "toidentifier": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/toidentifier/download/toidentifier-1.0.0.tgz",
+ "integrity": "sha1-fhvjRw8ed5SLxD2Uo8j013UrpVM=",
+ "dev": true
+ },
+ "toposort": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npm.taobao.org/toposort/download/toposort-1.0.7.tgz",
+ "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=",
+ "dev": true
+ },
+ "tough-cookie": {
+ "version": "2.4.3",
+ "resolved": "https://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.4.3.tgz",
+ "integrity": "sha1-U/Nto/R3g7CSWvoG/587FlKA94E=",
+ "dev": true,
+ "requires": {
+ "psl": "^1.1.24",
+ "punycode": "^1.4.1"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz",
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
+ "dev": true
+ }
+ }
+ },
+ "tryer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/tryer/download/tryer-1.0.1.tgz",
+ "integrity": "sha1-8shUBoALmw90yfdGW4HqrSQSUvg=",
+ "dev": true
+ },
+ "tslib": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npm.taobao.org/tslib/download/tslib-1.10.0.tgz",
+ "integrity": "sha1-w8GflZc/sKYpc/sJ2Q2WHuQ+XIo="
+ },
+ "tty-browserify": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npm.taobao.org/tty-browserify/download/tty-browserify-0.0.0.tgz",
+ "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=",
+ "dev": true
+ },
+ "tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "tweetnacl": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz",
+ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
+ "dev": true
+ },
+ "type-check": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npm.taobao.org/type-check/download/type-check-0.3.2.tgz",
+ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "~1.1.2"
+ }
+ },
+ "type-fest": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npm.taobao.org/type-fest/download/type-fest-0.6.0.tgz?cache=0&sync_timestamp=1569404138136&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-fest%2Fdownload%2Ftype-fest-0.6.0.tgz",
+ "integrity": "sha1-jSojcNPfiG61yQraHFv2GIrPg4s=",
+ "dev": true
+ },
+ "type-is": {
+ "version": "1.6.18",
+ "resolved": "https://registry.npm.taobao.org/type-is/download/type-is-1.6.18.tgz",
+ "integrity": "sha1-TlUs0F3wlGfcvE73Od6J8s83wTE=",
+ "dev": true,
+ "requires": {
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.24"
+ }
+ },
+ "typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz",
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
+ "dev": true
+ },
+ "uglify-js": {
+ "version": "3.4.10",
+ "resolved": "https://registry.npm.taobao.org/uglify-js/download/uglify-js-3.4.10.tgz?cache=0&sync_timestamp=1570521741655&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuglify-js%2Fdownload%2Fuglify-js-3.4.10.tgz",
+ "integrity": "sha1-mtlWPY6zrN+404WX0q8dgV9qdV8=",
+ "dev": true,
+ "requires": {
+ "commander": "~2.19.0",
+ "source-map": "~0.6.1"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "2.19.0",
+ "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.19.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.19.0.tgz",
+ "integrity": "sha1-9hmKqE5bg8RgVLlN3tv+1e6f8So=",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "unicode-canonical-property-names-ecmascript": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npm.taobao.org/unicode-canonical-property-names-ecmascript/download/unicode-canonical-property-names-ecmascript-1.0.4.tgz",
+ "integrity": "sha1-JhmADEyCWADv3YNDr33Zkzy+KBg=",
+ "dev": true
+ },
+ "unicode-match-property-ecmascript": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npm.taobao.org/unicode-match-property-ecmascript/download/unicode-match-property-ecmascript-1.0.4.tgz",
+ "integrity": "sha1-jtKjJWmWG86SJ9Cc0/+7j+1fAgw=",
+ "dev": true,
+ "requires": {
+ "unicode-canonical-property-names-ecmascript": "^1.0.4",
+ "unicode-property-aliases-ecmascript": "^1.0.4"
+ }
+ },
+ "unicode-match-property-value-ecmascript": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npm.taobao.org/unicode-match-property-value-ecmascript/download/unicode-match-property-value-ecmascript-1.1.0.tgz",
+ "integrity": "sha1-W0tCbgjROoA2Xg1lesemwexGonc=",
+ "dev": true
+ },
+ "unicode-property-aliases-ecmascript": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npm.taobao.org/unicode-property-aliases-ecmascript/download/unicode-property-aliases-ecmascript-1.0.5.tgz",
+ "integrity": "sha1-qcxsx85joKMCP8meNBuUQx1AWlc=",
+ "dev": true
+ },
+ "union-value": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/union-value/download/union-value-1.0.1.tgz",
+ "integrity": "sha1-C2/nuDWuzaYcbqTU8CwUIh4QmEc=",
+ "dev": true,
+ "requires": {
+ "arr-union": "^3.1.0",
+ "get-value": "^2.0.6",
+ "is-extendable": "^0.1.1",
+ "set-value": "^2.0.1"
+ }
+ },
+ "uniq": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/uniq/download/uniq-1.0.1.tgz",
+ "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=",
+ "dev": true
+ },
+ "uniqs": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/uniqs/download/uniqs-2.0.0.tgz",
+ "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=",
+ "dev": true
+ },
+ "unique-filename": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npm.taobao.org/unique-filename/download/unique-filename-1.1.1.tgz",
+ "integrity": "sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA=",
+ "dev": true,
+ "requires": {
+ "unique-slug": "^2.0.0"
+ }
+ },
+ "unique-slug": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npm.taobao.org/unique-slug/download/unique-slug-2.0.2.tgz",
+ "integrity": "sha1-uqvOkQg/xk6UWw861hPiZPfNTmw=",
+ "dev": true,
+ "requires": {
+ "imurmurhash": "^0.1.4"
+ }
+ },
+ "universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npm.taobao.org/universalify/download/universalify-0.1.2.tgz",
+ "integrity": "sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=",
+ "dev": true
+ },
+ "unpipe": {
+ "version": "1.0.0",
+ "resolved": "http://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz",
+ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
+ "dev": true
+ },
+ "unquote": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npm.taobao.org/unquote/download/unquote-1.1.1.tgz",
+ "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=",
+ "dev": true
+ },
+ "unset-value": {
+ "version": "1.0.0",
+ "resolved": "http://registry.npm.taobao.org/unset-value/download/unset-value-1.0.0.tgz",
+ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
+ "dev": true,
+ "requires": {
+ "has-value": "^0.3.1",
+ "isobject": "^3.0.0"
+ },
+ "dependencies": {
+ "has-value": {
+ "version": "0.3.1",
+ "resolved": "http://registry.npm.taobao.org/has-value/download/has-value-0.3.1.tgz",
+ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
+ "dev": true,
+ "requires": {
+ "get-value": "^2.0.3",
+ "has-values": "^0.1.4",
+ "isobject": "^2.0.0"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz",
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+ "dev": true,
+ "requires": {
+ "isarray": "1.0.0"
+ }
+ }
+ }
+ },
+ "has-values": {
+ "version": "0.1.4",
+ "resolved": "http://registry.npm.taobao.org/has-values/download/has-values-0.1.4.tgz",
+ "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
+ "dev": true
+ }
+ }
+ },
+ "upath": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npm.taobao.org/upath/download/upath-1.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fupath%2Fdownload%2Fupath-1.2.0.tgz",
+ "integrity": "sha1-j2bbzVWog6za5ECK+LA1pQRMGJQ=",
+ "dev": true
+ },
+ "upper-case": {
+ "version": "1.1.3",
+ "resolved": "http://registry.npm.taobao.org/upper-case/download/upper-case-1.1.3.tgz",
+ "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=",
+ "dev": true
+ },
+ "uri-js": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npm.taobao.org/uri-js/download/uri-js-4.2.2.tgz",
+ "integrity": "sha1-lMVA4f93KVbiKZUHwBCupsiDjrA=",
+ "dev": true,
+ "requires": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "urix": {
+ "version": "0.1.0",
+ "resolved": "http://registry.npm.taobao.org/urix/download/urix-0.1.0.tgz",
+ "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
+ "dev": true
+ },
+ "url": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npm.taobao.org/url/download/url-0.11.0.tgz",
+ "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
+ "dev": true,
+ "requires": {
+ "punycode": "1.3.2",
+ "querystring": "0.2.0"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.3.2.tgz",
+ "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=",
+ "dev": true
+ }
+ }
+ },
+ "url-loader": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npm.taobao.org/url-loader/download/url-loader-1.1.2.tgz",
+ "integrity": "sha1-uXHRkbg69pPF4/6kBkvp4fLX+Ng=",
+ "dev": true,
+ "requires": {
+ "loader-utils": "^1.1.0",
+ "mime": "^2.0.3",
+ "schema-utils": "^1.0.0"
+ }
+ },
+ "url-parse": {
+ "version": "1.4.7",
+ "resolved": "https://registry.npm.taobao.org/url-parse/download/url-parse-1.4.7.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Furl-parse%2Fdownload%2Furl-parse-1.4.7.tgz",
+ "integrity": "sha1-qKg1NejACjFuQDpdtKwbm4U64ng=",
+ "dev": true,
+ "requires": {
+ "querystringify": "^2.1.1",
+ "requires-port": "^1.0.0"
+ }
+ },
+ "use": {
+ "version": "3.1.1",
+ "resolved": "http://registry.npm.taobao.org/use/download/use-3.1.1.tgz",
+ "integrity": "sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8=",
+ "dev": true
+ },
+ "util": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npm.taobao.org/util/download/util-0.11.1.tgz",
+ "integrity": "sha1-MjZzNyDsZLsn9uJvQhqqLhtYjWE=",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz?cache=0&sync_timestamp=1560975547815&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "dev": true
+ }
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "http://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+ "dev": true
+ },
+ "util.promisify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.0.tgz",
+ "integrity": "sha1-RA9xZaRZyaFtwUXrjnLzVocJcDA=",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.2",
+ "object.getownpropertydescriptors": "^2.0.3"
+ }
+ },
+ "utila": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npm.taobao.org/utila/download/utila-0.4.0.tgz",
+ "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=",
+ "dev": true
+ },
+ "utils-merge": {
+ "version": "1.0.1",
+ "resolved": "http://registry.npm.taobao.org/utils-merge/download/utils-merge-1.0.1.tgz",
+ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
+ "dev": true
+ },
+ "uuid": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npm.taobao.org/uuid/download/uuid-3.3.3.tgz",
+ "integrity": "sha1-RWjwIW54dg7h2/Ok0s9T4iQRKGY=",
+ "dev": true
+ },
+ "validate-npm-package-license": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npm.taobao.org/validate-npm-package-license/download/validate-npm-package-license-3.0.4.tgz",
+ "integrity": "sha1-/JH2uce6FchX9MssXe/uw51PQQo=",
+ "dev": true,
+ "requires": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
+ "vary": {
+ "version": "1.1.2",
+ "resolved": "http://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz",
+ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
+ "dev": true
+ },
+ "vendors": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npm.taobao.org/vendors/download/vendors-1.0.3.tgz",
+ "integrity": "sha1-pkZ3gavTZiF8BQ+CAuflDMnu+MA=",
+ "dev": true
+ },
+ "verror": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npm.taobao.org/verror/download/verror-1.10.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fverror%2Fdownload%2Fverror-1.10.0.tgz",
+ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "core-util-is": "1.0.2",
+ "extsprintf": "^1.2.0"
+ }
+ },
+ "vm-browserify": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npm.taobao.org/vm-browserify/download/vm-browserify-1.1.0.tgz",
+ "integrity": "sha1-vXbWojMj4sqP+hICjcBFWcdfkBk=",
+ "dev": true
+ },
+ "vue": {
+ "version": "2.6.10",
+ "resolved": "https://registry.npm.taobao.org/vue/download/vue-2.6.10.tgz",
+ "integrity": "sha1-pysaQqTYKnIepDjRtr9V5mGVxjc="
+ },
+ "vue-eslint-parser": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npm.taobao.org/vue-eslint-parser/download/vue-eslint-parser-2.0.3.tgz",
+ "integrity": "sha1-wmjJbG2Uz+PZOKX3WTlZsMozYNE=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "debug": "^3.1.0",
+ "eslint-scope": "^3.7.1",
+ "eslint-visitor-keys": "^1.0.0",
+ "espree": "^3.5.2",
+ "esquery": "^1.0.0",
+ "lodash": "^4.17.4"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.6",
+ "resolved": "http://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz",
+ "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "eslint-scope": {
+ "version": "3.7.3",
+ "resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-3.7.3.tgz",
+ "integrity": "sha1-u1ByANPRf2AkdjYWC0gmKEsQhTU=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "esrecurse": "^4.1.0",
+ "estraverse": "^4.1.1"
+ }
+ }
+ }
+ },
+ "vue-hot-reload-api": {
+ "version": "2.3.4",
+ "resolved": "https://registry.npm.taobao.org/vue-hot-reload-api/download/vue-hot-reload-api-2.3.4.tgz",
+ "integrity": "sha1-UylVzB6yCKPZkLOp+acFdGV+CPI=",
+ "dev": true
+ },
+ "vue-loader": {
+ "version": "15.7.1",
+ "resolved": "https://registry.npm.taobao.org/vue-loader/download/vue-loader-15.7.1.tgz?cache=0&sync_timestamp=1563435501637&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-loader%2Fdownload%2Fvue-loader-15.7.1.tgz",
+ "integrity": "sha1-bMrNQSKqgPabqqwI/ylaYuOu/P0=",
+ "dev": true,
+ "requires": {
+ "@vue/component-compiler-utils": "^3.0.0",
+ "hash-sum": "^1.0.2",
+ "loader-utils": "^1.1.0",
+ "vue-hot-reload-api": "^2.3.0",
+ "vue-style-loader": "^4.1.0"
+ }
+ },
+ "vue-router": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npm.taobao.org/vue-router/download/vue-router-3.1.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-router%2Fdownload%2Fvue-router-3.1.3.tgz",
+ "integrity": "sha1-5rFPq8DA7p/aDiy72nSzUOKOQSs="
+ },
+ "vue-style-loader": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npm.taobao.org/vue-style-loader/download/vue-style-loader-4.1.2.tgz",
+ "integrity": "sha1-3t80mAbyXOtOZPOtfApE+6c1/Pg=",
+ "dev": true,
+ "requires": {
+ "hash-sum": "^1.0.2",
+ "loader-utils": "^1.0.2"
+ }
+ },
+ "vue-template-compiler": {
+ "version": "2.6.10",
+ "resolved": "https://registry.npm.taobao.org/vue-template-compiler/download/vue-template-compiler-2.6.10.tgz",
+ "integrity": "sha1-MjtPNJXwT6o1AzN6gvXWUHeZycw=",
+ "dev": true,
+ "requires": {
+ "de-indent": "^1.0.2",
+ "he": "^1.1.0"
+ }
+ },
+ "vue-template-es2015-compiler": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npm.taobao.org/vue-template-es2015-compiler/download/vue-template-es2015-compiler-1.9.1.tgz",
+ "integrity": "sha1-HuO8mhbsv1EYvjNLsV+cRvgvWCU=",
+ "dev": true
+ },
+ "vuex": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npm.taobao.org/vuex/download/vuex-3.1.1.tgz",
+ "integrity": "sha1-DCZL/jDNvM+Wq52zF30hGCilkQ4="
+ },
+ "watchpack": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npm.taobao.org/watchpack/download/watchpack-1.6.0.tgz",
+ "integrity": "sha1-S8EsLr6KonenHx0/FNaFx7RGzQA=",
+ "dev": true,
+ "requires": {
+ "chokidar": "^2.0.2",
+ "graceful-fs": "^4.1.2",
+ "neo-async": "^2.5.0"
+ }
+ },
+ "wbuf": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npm.taobao.org/wbuf/download/wbuf-1.7.3.tgz",
+ "integrity": "sha1-wdjRSTFtPqhShIiVy2oL/oh7h98=",
+ "dev": true,
+ "requires": {
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "wcwidth": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/wcwidth/download/wcwidth-1.0.1.tgz",
+ "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=",
+ "dev": true,
+ "requires": {
+ "defaults": "^1.0.3"
+ }
+ },
+ "webpack": {
+ "version": "4.41.0",
+ "resolved": "https://registry.npm.taobao.org/webpack/download/webpack-4.41.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack%2Fdownload%2Fwebpack-4.41.0.tgz",
+ "integrity": "sha1-22olS95nF2n3wU6QoaVec2Avxws=",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.8.5",
+ "@webassemblyjs/helper-module-context": "1.8.5",
+ "@webassemblyjs/wasm-edit": "1.8.5",
+ "@webassemblyjs/wasm-parser": "1.8.5",
+ "acorn": "^6.2.1",
+ "ajv": "^6.10.2",
+ "ajv-keywords": "^3.4.1",
+ "chrome-trace-event": "^1.0.2",
+ "enhanced-resolve": "^4.1.0",
+ "eslint-scope": "^4.0.3",
+ "json-parse-better-errors": "^1.0.2",
+ "loader-runner": "^2.4.0",
+ "loader-utils": "^1.2.3",
+ "memory-fs": "^0.4.1",
+ "micromatch": "^3.1.10",
+ "mkdirp": "^0.5.1",
+ "neo-async": "^2.6.1",
+ "node-libs-browser": "^2.2.1",
+ "schema-utils": "^1.0.0",
+ "tapable": "^1.1.3",
+ "terser-webpack-plugin": "^1.4.1",
+ "watchpack": "^1.6.0",
+ "webpack-sources": "^1.4.1"
+ }
+ },
+ "webpack-bundle-analyzer": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npm.taobao.org/webpack-bundle-analyzer/download/webpack-bundle-analyzer-3.5.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-bundle-analyzer%2Fdownload%2Fwebpack-bundle-analyzer-3.5.2.tgz",
+ "integrity": "sha1-rAKDT0sx3o4n1x5semEjAevdt58=",
+ "dev": true,
+ "requires": {
+ "acorn": "^6.0.7",
+ "acorn-walk": "^6.1.1",
+ "bfj": "^6.1.1",
+ "chalk": "^2.4.1",
+ "commander": "^2.18.0",
+ "ejs": "^2.6.1",
+ "express": "^4.16.3",
+ "filesize": "^3.6.1",
+ "gzip-size": "^5.0.0",
+ "lodash": "^4.17.15",
+ "mkdirp": "^0.5.1",
+ "opener": "^1.5.1",
+ "ws": "^6.0.0"
+ }
+ },
+ "webpack-chain": {
+ "version": "4.12.1",
+ "resolved": "https://registry.npm.taobao.org/webpack-chain/download/webpack-chain-4.12.1.tgz",
+ "integrity": "sha1-bIQ5u7KrVQlS1g4eqTGRQZBsAqY=",
+ "dev": true,
+ "requires": {
+ "deepmerge": "^1.5.2",
+ "javascript-stringify": "^1.6.0"
+ }
+ },
+ "webpack-dev-middleware": {
+ "version": "3.7.2",
+ "resolved": "https://registry.npm.taobao.org/webpack-dev-middleware/download/webpack-dev-middleware-3.7.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-middleware%2Fdownload%2Fwebpack-dev-middleware-3.7.2.tgz",
+ "integrity": "sha1-ABnD23FuP6XOy/ZPKriKdLqzMfM=",
+ "dev": true,
+ "requires": {
+ "memory-fs": "^0.4.1",
+ "mime": "^2.4.4",
+ "mkdirp": "^0.5.1",
+ "range-parser": "^1.2.1",
+ "webpack-log": "^2.0.0"
+ }
+ },
+ "webpack-dev-server": {
+ "version": "3.8.2",
+ "resolved": "https://registry.npm.taobao.org/webpack-dev-server/download/webpack-dev-server-3.8.2.tgz",
+ "integrity": "sha1-MpJCe/ZRDamjrC1QC5JKQZdmf/k=",
+ "dev": true,
+ "requires": {
+ "ansi-html": "0.0.7",
+ "bonjour": "^3.5.0",
+ "chokidar": "^2.1.8",
+ "compression": "^1.7.4",
+ "connect-history-api-fallback": "^1.6.0",
+ "debug": "^4.1.1",
+ "del": "^4.1.1",
+ "express": "^4.17.1",
+ "html-entities": "^1.2.1",
+ "http-proxy-middleware": "0.19.1",
+ "import-local": "^2.0.0",
+ "internal-ip": "^4.3.0",
+ "ip": "^1.1.5",
+ "is-absolute-url": "^3.0.3",
+ "killable": "^1.0.1",
+ "loglevel": "^1.6.4",
+ "opn": "^5.5.0",
+ "p-retry": "^3.0.1",
+ "portfinder": "^1.0.24",
+ "schema-utils": "^1.0.0",
+ "selfsigned": "^1.10.7",
+ "semver": "^6.3.0",
+ "serve-index": "^1.9.1",
+ "sockjs": "0.3.19",
+ "sockjs-client": "1.4.0",
+ "spdy": "^4.0.1",
+ "strip-ansi": "^3.0.1",
+ "supports-color": "^6.1.0",
+ "url": "^0.11.0",
+ "webpack-dev-middleware": "^3.7.2",
+ "webpack-log": "^2.0.0",
+ "ws": "^6.2.1",
+ "yargs": "12.0.5"
+ },
+ "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
+ },
+ "cliui": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-4.1.0.tgz",
+ "integrity": "sha1-NIQi2+gtgAswIu709qwQvy5NG0k=",
+ "dev": true,
+ "requires": {
+ "string-width": "^2.1.1",
+ "strip-ansi": "^4.0.0",
+ "wrap-ansi": "^2.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ }
+ }
+ },
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz",
+ "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=",
+ "dev": true,
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
+ "get-caller-file": {
+ "version": "1.0.3",
+ "resolved": "http://registry.npm.taobao.org/get-caller-file/download/get-caller-file-1.0.3.tgz",
+ "integrity": "sha1-+Xj6TJDR3+f/LWvtoqUV5xO9z0o=",
+ "dev": true
+ },
+ "is-absolute-url": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-3.0.3.tgz?cache=0&sync_timestamp=1569736493122&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-absolute-url%2Fdownload%2Fis-absolute-url-3.0.3.tgz",
+ "integrity": "sha1-lsaiK2ojkpsR6gr7GDbDatSl1pg=",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "^1.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"
+ }
+ },
+ "p-limit": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.2.1.tgz",
+ "integrity": "sha1-qgeniMwxUck5tRMfY1cPDdIAlTc=",
+ "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",
+ "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.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
+ },
+ "require-main-filename": {
+ "version": "1.0.1",
+ "resolved": "http://registry.npm.taobao.org/require-main-filename/download/require-main-filename-1.0.1.tgz",
+ "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
+ "dev": true
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1565627380363&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz",
+ "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=",
+ "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": "6.1.0",
+ "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz?cache=0&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"
+ }
+ },
+ "wrap-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-2.1.0.tgz",
+ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
+ "dev": true,
+ "requires": {
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1"
+ },
+ "dependencies": {
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ }
+ }
+ },
+ "yargs": {
+ "version": "12.0.5",
+ "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-12.0.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-12.0.5.tgz",
+ "integrity": "sha1-BfWZe2CWR7ZPZrgeO0sQo2jnrRM=",
+ "dev": true,
+ "requires": {
+ "cliui": "^4.0.0",
+ "decamelize": "^1.2.0",
+ "find-up": "^3.0.0",
+ "get-caller-file": "^1.0.1",
+ "os-locale": "^3.0.0",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^1.0.1",
+ "set-blocking": "^2.0.0",
+ "string-width": "^2.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^3.2.1 || ^4.0.0",
+ "yargs-parser": "^11.1.1"
+ }
+ },
+ "yargs-parser": {
+ "version": "11.1.1",
+ "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-11.1.1.tgz",
+ "integrity": "sha1-h5oIZZc7yp9rq1y987HGfsfTvPQ=",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
+ }
+ }
+ },
+ "webpack-log": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/webpack-log/download/webpack-log-2.0.0.tgz?cache=0&sync_timestamp=1564684394562&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-log%2Fdownload%2Fwebpack-log-2.0.0.tgz",
+ "integrity": "sha1-W3ko4GN1k/EZ0y9iJ8HgrDHhtH8=",
+ "dev": true,
+ "requires": {
+ "ansi-colors": "^3.0.0",
+ "uuid": "^3.3.2"
+ }
+ },
+ "webpack-merge": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npm.taobao.org/webpack-merge/download/webpack-merge-4.2.2.tgz?cache=0&sync_timestamp=1566978693896&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-merge%2Fdownload%2Fwebpack-merge-4.2.2.tgz",
+ "integrity": "sha1-onxS6ng9E5iv0gh/VH17nS9DY00=",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.15"
+ }
+ },
+ "webpack-sources": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npm.taobao.org/webpack-sources/download/webpack-sources-1.4.3.tgz?cache=0&sync_timestamp=1568302837530&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-sources%2Fdownload%2Fwebpack-sources-1.4.3.tgz",
+ "integrity": "sha1-7t2OwLko+/HL/plOItLYkPMwqTM=",
+ "dev": true,
+ "requires": {
+ "source-list-map": "^2.0.0",
+ "source-map": "~0.6.1"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "websocket-driver": {
+ "version": "0.7.3",
+ "resolved": "https://registry.npm.taobao.org/websocket-driver/download/websocket-driver-0.7.3.tgz",
+ "integrity": "sha1-otTg1PTxFvHmKX66WLBdQwEA6fk=",
+ "dev": true,
+ "requires": {
+ "http-parser-js": ">=0.4.0 <0.4.11",
+ "safe-buffer": ">=5.1.0",
+ "websocket-extensions": ">=0.1.1"
+ }
+ },
+ "websocket-extensions": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npm.taobao.org/websocket-extensions/download/websocket-extensions-0.1.3.tgz",
+ "integrity": "sha1-XS/yKXcAPsaHpLhwc9+7rBRszyk=",
+ "dev": true
+ },
+ "which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npm.taobao.org/which/download/which-1.3.1.tgz?cache=0&sync_timestamp=1570145314160&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-1.3.1.tgz",
+ "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ },
+ "which-module": {
+ "version": "2.0.0",
+ "resolved": "http://registry.npm.taobao.org/which-module/download/which-module-2.0.0.tgz",
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
+ "dev": true
+ },
+ "wordwrap": {
+ "version": "1.0.0",
+ "resolved": "http://registry.npm.taobao.org/wordwrap/download/wordwrap-1.0.0.tgz",
+ "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
+ "dev": true
+ },
+ "worker-farm": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npm.taobao.org/worker-farm/download/worker-farm-1.7.0.tgz",
+ "integrity": "sha1-JqlMU5G7ypJhUgAvabhKS/dy5ag=",
+ "dev": true,
+ "requires": {
+ "errno": "~0.1.7"
+ }
+ },
+ "wrap-ansi": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-5.1.0.tgz",
+ "integrity": "sha1-H9H2cjXVttD+54EFYAG/tpTAOwk=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.0",
+ "string-width": "^3.0.0",
+ "strip-ansi": "^5.0.0"
+ },
+ "dependencies": {
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz",
+ "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ }
+ }
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "http://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "dev": true
+ },
+ "write": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npm.taobao.org/write/download/write-0.2.1.tgz",
+ "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "mkdirp": "^0.5.1"
+ }
+ },
+ "ws": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npm.taobao.org/ws/download/ws-6.2.1.tgz",
+ "integrity": "sha1-RC/fCkftZPWbal2P8TD0dI7VJPs=",
+ "dev": true,
+ "requires": {
+ "async-limiter": "~1.0.0"
+ }
+ },
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npm.taobao.org/xtend/download/xtend-4.0.2.tgz",
+ "integrity": "sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q=",
+ "dev": true
+ },
+ "y18n": {
+ "version": "4.0.0",
+ "resolved": "http://registry.npm.taobao.org/y18n/download/y18n-4.0.0.tgz",
+ "integrity": "sha1-le+U+F7MgdAHwmThkKEg8KPIVms=",
+ "dev": true
+ },
+ "yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-3.1.1.tgz",
+ "integrity": "sha1-27fa+b/YusmrRev2ArjLrQ1dCP0=",
+ "dev": true
+ },
+ "yargs": {
+ "version": "13.3.0",
+ "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-13.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-13.3.0.tgz",
+ "integrity": "sha1-TGV6VeB+Xyz5R/ijZlZ8BKDe3IM=",
+ "dev": true,
+ "requires": {
+ "cliui": "^5.0.0",
+ "find-up": "^3.0.0",
+ "get-caller-file": "^2.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^3.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^13.1.1"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz",
+ "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=",
+ "dev": true,
+ "requires": {
+ "locate-path": "^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"
+ }
+ },
+ "p-limit": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.2.1.tgz",
+ "integrity": "sha1-qgeniMwxUck5tRMfY1cPDdIAlTc=",
+ "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",
+ "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.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
+ },
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz",
+ "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ }
+ }
+ }
+ },
+ "yargs-parser": {
+ "version": "13.1.1",
+ "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-13.1.1.tgz",
+ "integrity": "sha1-0mBYUyqgbTZf4JH2ofwGsvfl7KA=",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
+ },
+ "yorkie": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/yorkie/download/yorkie-2.0.0.tgz",
+ "integrity": "sha1-kkEZEtQ1IU4SxRwq4Qk+VLa7g9k=",
+ "dev": true,
+ "requires": {
+ "execa": "^0.8.0",
+ "is-ci": "^1.0.10",
+ "normalize-path": "^1.0.0",
+ "strip-indent": "^2.0.0"
+ },
+ "dependencies": {
+ "cross-spawn": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-5.1.0.tgz?cache=0&sync_timestamp=1570439926300&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-5.1.0.tgz",
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^4.0.1",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ }
+ },
+ "execa": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npm.taobao.org/execa/download/execa-0.8.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-0.8.0.tgz",
+ "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^5.0.1",
+ "get-stream": "^3.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
+ }
+ },
+ "get-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-3.0.0.tgz",
+ "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
+ "dev": true
+ },
+ "lru-cache": {
+ "version": "4.1.5",
+ "resolved": "http://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz",
+ "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=",
+ "dev": true,
+ "requires": {
+ "pseudomap": "^1.0.2",
+ "yallist": "^2.1.2"
+ }
+ },
+ "normalize-path": {
+ "version": "1.0.0",
+ "resolved": "http://registry.npm.taobao.org/normalize-path/download/normalize-path-1.0.0.tgz",
+ "integrity": "sha1-MtDkcvkf80VwHBWoMRAY07CpA3k=",
+ "dev": true
+ },
+ "yallist": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz",
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
+ "dev": true
+ }
+ }
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..f613c6e
--- /dev/null
+++ b/package.json
@@ -0,0 +1,43 @@
+{
+ "name": "@chaincloud/ClayTop",
+ "version": "0.1.0",
+ "description": "A visual graph editor based on G6 and Vue.js.",
+ "author": "clay ",
+ "main": "lib/ClayTop.common.js",
+ "keywords": [
+ "vue",
+ "graph",
+ "graph editor",
+ "topo",
+ "topology"
+ ],
+ "license": "MIT",
+ "private": true,
+ "scripts": {
+ "serve": "vue-cli-service serve",
+ "build": "vue-cli-service build",
+ "lint": "vue-cli-service lint",
+ "lib": "vue-cli-service build --target lib --name ClayTop --dest lib packages/index.js"
+ },
+ "dependencies": {
+ "@antv/g6": "^3.5.7",
+ "core-js": "^2.6.5",
+ "element-ui": "^2.11.1",
+ "jquery": "^3.6.0",
+ "vue": "^2.6.10",
+ "vue-router": "^3.0.3",
+ "vuex": "^3.0.1"
+ },
+ "devDependencies": {
+ "@vue/cli-plugin-babel": "^3.9.0",
+ "@vue/cli-plugin-eslint": "^3.9.0",
+ "@vue/cli-service": "^3.9.0",
+ "@vue/eslint-config-prettier": "^4.0.1",
+ "babel-eslint": "^10.0.1",
+ "eslint": "^5.16.0",
+ "eslint-plugin-vue": "^5.0.0",
+ "sass": "^1.18.0",
+ "sass-loader": "^7.1.0",
+ "vue-template-compiler": "^2.6.10"
+ }
+}
diff --git a/packages-含有注释代码/assets/iconfont/iconfont.css b/packages-含有注释代码/assets/iconfont/iconfont.css
new file mode 100644
index 0000000..e43ff4c
--- /dev/null
+++ b/packages-含有注释代码/assets/iconfont/iconfont.css
@@ -0,0 +1,127 @@
+@font-face {font-family: "iconfont";
+ src: url('iconfont.eot?t=1568972645985'); /* IE9 */
+ src: url('iconfont.eot?t=1568972645985#iefix') format('embedded-opentype'), /* IE6-IE8 */
+ url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAA1MAAsAAAAAGkgAAAz/AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCGNAqiNJtOATYCJANgCzIABCAFhG0Hgggb6BVRlHJWSbKvBuyGeKPMp/UYzGar17rEgTXbq2lrenLOOiJE8OITJy7o6fe+23NLTyvVJoAwKGwrQsbFosAJPEZ3+Ytm/BseN+3fS0glCVCTCasY3VadGPyVrtxu0utIModSm3RSUfZHsjncObIyr8P0tHWYOJ0iZ73RM+2Zsj9df+4zw/JNJ9NJdwqhRklfCGc8j+3e58ZmgnVRSEKWoklKoPcrmZk0P0/vAQIBvH8/VamVDeUAJF3vd7MA0gtNCSshGl4/et+X5y2na8nOGlLHnKxoLUA8VuZibvEGsDHrBry0BQQUMFyDQ83xaxAyVtWrb5F0j+khUKzKBLeXr99Kh8NzCehMY1nptPycxS7JGwzDFukbmNR8MRW+5qXXb00Cw7fwgs+PZ125e8B32V4da2Ma5KA/HXgZDiw4BnAwk3GbBmxJj3OtmP7ceP4B7BPhSU/MEskVU6nwQu9EH7xRxVXS/eHM0Zd9YXi589MDTvXcO37+eLIvQ1Rn/RceIJoTYFwonswTIykqqxkxasyMKBHChAPqQO8G0MJa5oAekKsR0YOqCaYACYBEIOMAOZAJQDEQB1AByYAKIB7wAhABTmA1DPpgNRL6UUgBxAGpgBIgFnAPSAM4gYwAxoCMAu5jNcYwjGwkh2ggs4AyINOAC0AmAZexF1MAMJ8Ocw7woOJvQKg4+840uwPrToBSd7dEvK4t7vqaNfFFG7BPmh1xcj7mKetK4OMad2POjc62lYVVQ4stLy8tV6JEg9uc643L1cHTEs84tW63xsev5q0SacLNnHdans+TeT+TrS6PO/hylgoKhZfDejUj72RllMIEPrGHm0p736c9zytc+yj3BEMZ9dHRZi5qp4djvHrKzSpcOprmAxJqQnihShgQFtgigBsqGECffqJ/xD7UPdYg7DAu0I3GYcftqU4L4glRlYKRUFU0s8SmS1tESc5xGkAAAm7ElR8XPFOMjRcQBNI2kszvscejltEUsnOY4iPkLjIwa8BJnQliXA9BFAKCriRUMfJCIKnrBDzWSPBb6Gte6PHQLpfC7aa83tWd1s9xOzW718uYXK4NbC+OAyXobBDiAneOIKCgtwJQ79PgPByT4zv5KF/Y92Q6ZrrO4NDiScE7XTEARi9rJUIn+WZtahwSYBfad216u2fZdZfo5JVk5C3HlLPuwlvexFNXN+sHLrDn+5O6Rzn7JqTSj7DDGr0xEjH0TsV6Lprpps/7Sb+SM2alSWeIQIxWgq9fzM7u+jwf/31KUweVzqfWmaJwzqTW9QJQdH1JTujN0YTZDCFna8A9pMQNBgAerfpzEBLd7FVtijSZcDfnUJ0zbeiwo6d6u6fOdj/NmM1ROVV74VQPMRoJSgFaGsyo6jHvpNCToRTqUjXzLgmK97XbNS8D8TofjPO1BlfB3s4aI5/kEfqaTZWlCjXlMX0LoaAJyHmWut1K4mB9uFwXBglAnG2NW33VZWW7AQ5wKKiiTrIZ8CHN148AsMnayEdByNnX6oaGtt3FN8dkMQiBcgQfEDx2Hd8CIQ42V07YBTvlUUD9dA0sMPRGIKw1Wag/F4+abNVguU3AEAUJY7Q5GkKCyjOZInQRc8IwGiP1XUoSydvSOnFdiskC5xq7oueAvDDkpSAltu7iQO54T09kzwClyzCd4k5Hn8vXpxvb2BMRhk5a5yL0XgbgNJF9mmEdQ6EkpVgLgY8qaLWA8Glmw0AkwlCat1xTInCMPOWZs+JtZ9Lc8OZGEzz+SXf+JtB1GWzsvshd2ky9DcULNNDzOY07IyTWyxh4ywXONieV2OFZjrfqbKdOn+t72wqOnW/QXdxUB2bPbz/9ZC4fWmwpuO2+zpm25ewZw2uzJhPKLuvul4w7V0Egx3qTyG7bIYI7F22zMv236iMpowbruQS3/s66/hiBZRCf313YC8m8zvNzubN+KF7YNkDM687cxc16I2vYlnzmZqU0vJuLtgYBJtwEWrtNKRu8vBJLZADg0cjwAblWZ3U1I8xjKEjIpzqH2RG9nRtV+D+aAzI9Vqpz8jLdOfPOcc68UStaWSVTUUUdEkeGPQwLbTW3IAU/FxQ59ziXgoUqwcSHG2vx2KrttdXihK+uFY9rW0U4v5b5eNwaZ5Udjbc8+ZPe8APhNzA/eJiygtlM/GF/VljBPMQBWKD1qymweYiDZe2SAEm/Vmp/GkSVwAzmPro+Ep8bPyTN+BCee2ZkiX2EJ6LG70gld/45dGjePGz2ZTpzMLDt4KHBxFyQ+SSu8MiRwjHZ96p2rNDmP2Kr95dZSMphcVBkHlk6xcKswO6nSX+7LRciJ4WCiV+GHG8PPiPRsA2tz/zlkDocMwRC8qClYBJY9DL/x5/2ZbT+D+1419uu7KjXy7d73x1HAWgRB/z0470ZbTPSr+9FensQYt/b2xtFenprc09PRkpYUxhNoynpcLY8FXY46UgYxR9Jak5LhzWD7Fp5tHylnJXjXiG3qHGrY5bDiquR9p19ny+eWZA46ZykSWYu/rzYKXZGVUY9b1YDZ5xICHKGjgg2oGhhYVYWuwfK2/Zfc7CSFeGIKHkGFD1sWtQ09SemsL9wsGRfMj4WXMkP5Vfi4xGVe/cuWfHm2q2Ag2P/X7At+ULQB31oM7hbKVtbWVEJ0qZWRoyYDmiVDiGYBoRnzmSL4MC4gkB8vfJT4eBBebGYIxzJkjSoYLhfYLG+XB7Z1mbowXyY1nZlF8vlGCZZcT4s8GfKrXgFWVshU+bJB4LLGtm8L1s3H5uQST6TabGgO1htbPNa8nYPKbGJghwySZvy3L3cgAnZweY1xJ/vSVYU/iR5tnqFMwebWHOwpYT89vPn31RhtPLwihSFeA8oIlXgPYkyxC3BX+GIV8/HXskLtlzwe1h1bEv7LtxZvP3pF2vXYT/KMknZqrwDRY2FmeI/35u/oq4krNTskLd7ger5N8RXUPHl4j3lK1M36YHELuVrwUrP6teP+NwmkbBSNkGtBB67sgKpXwKmJkyVSmd+9nbDOMH89rFWbeM3062+VqJ0fmmI8M1vJwxpkoPCkO3zK4Ua38Hvf+nuOTHLr8UZ0eTcozrVzWuTqcLIEEY0GtKAREqYFdTBWP+879ekSFVDFkRentU7c4H47/ZYAS8KzbmaS1BfHJn7oiCK1oqmKTueELpFq38KZHOroqOq1B3qn5v7Po8mD+xq/SlHsfNcmuDigdR953ZVpOwcfSn1wOg3/4admg5ak6fBVve00aQiLTt9dNbS3dXA/nSor0wtFjHKN+2otm+orCxTpGTsb2pRItdHRPHA3JAzD4ty/gIDvti/5Lm+3auWNRYtojdt35iTCwbGo/+W509eea6YJOUoV8DTSHbyeDIbZIXc9pVfAMyfPGbl3eUL7vGsf73++zVDazv6rhdtt13KK5odWLiqqZ5e5O7O3lgAsz4WhV11FB8L4IvDAidvfhQ7me0XE50EEqHw+8mQl1Fb1lnyVfmr5NksG3qm1e2h5IcsWxqi+79/aKM+I6dqCnmofkefLCcdDjJifP/+cTAfrNhS1BEjaPLFLKjfUr8gxtckiOko0jHz3ratio2zykRVKPiHp8jbPS/z0Gxvs3Pp247AI4GXpTN/1SWHi6XFc8sMdwVP1z3HH1zxNS0RoWmbJ9ng2YNXecA5XeWz2XoDwS+ZgX/7mxlGNINJqR/suoLv1N1gRyW5+IYr6BzxliF0qfg5CxonajlQqWjjQWmR9QXKft6jadDZAIADSAsxLItK/XxbfGTQpNJtHRvw0cwaG7fzGT5U5f+b6QjKsmZNQaBsLIUyR0wneoFtRRY/bMkE/v9em6kULvo1iLgrs/OnzSGACqr6KRvGSAzeqB4pD1KwDCy2P9zfLh6YL58nUNJxBs/U9Fi6v0OPYFKjLZnXKc4woIhL4CHKpkkf9YnNODseKbGZmhjRCrGSbc5VHhOvuiZBckeKI0UjV1Nq1alk4NBBQmTcJWKM+kGscWMSJFSOE2/WdyQYjyXFi8zHWe3mc++RQDJoEe1EqtCZJMS9ou83xMFKarpy4R/IpzvFyeHxYNsrOCAfA/h1fMpshCEsxAuZGViLoiTMQPFhwlzeHh0Z04CHCotKzzMESJyuqAlqu7pbKcgxd2Y9bfG/gVhgSWQ54lfdf4B46csL2WbJcuBeNed0xL5Y66zFTtVT3RByf4IKwjKqAyviSNhtTpcBCju0ZQyjdGs2PVOlq3YYnxXbhMbad1Re/PkYWTl5BUUlZRVVNY1oVGMa14QmNaVpzWhWc5rXAia948ZZlLqzRywOMHAzLWQMndU2NdAp96TiIK1P99BQWO7aLglS11QWJHUNCmwObOqgQaCxEZyy1E3KHcaDpas7bhdJI6nyHmF64MH+TrCReXQ9E6z1igBcKyLMYWLmQGtoltJzuldMGMp2cPmWkSSKsFUTlj31VSo=') format('woff2'),
+ url('iconfont.woff?t=1568972645985') format('woff'),
+ url('iconfont.ttf?t=1568972645985') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */
+ url('iconfont.svg?t=1568972645985#iconfont') format('svg'); /* iOS 4.1- */
+}
+
+.iconfont {
+ font-family: "iconfont" !important;
+ font-size: 16px;
+ font-style: normal;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+.icon-download:before {
+ content: "\e68d";
+}
+
+.icon-zoom-out:before {
+ content: "\e69c";
+}
+
+.icon-image:before {
+ content: "\e752";
+}
+
+.icon-iconedit:before {
+ content: "\e650";
+}
+
+.icon-actualsize:before {
+ content: "\e665";
+}
+
+.icon-copy:before {
+ content: "\e61c";
+}
+
+.icon-zoom-in:before {
+ content: "\e600";
+}
+
+.icon-clear:before {
+ content: "\e700";
+}
+
+.icon-flow-line:before {
+ content: "\e660";
+}
+
+.icon-redo:before {
+ content: "\e716";
+}
+
+.icon-undo:before {
+ content: "\e71a";
+}
+
+.icon-fit:before {
+ content: "\e7cb";
+}
+
+.icon-to-front:before {
+ content: "\e7cc";
+}
+
+.icon-to-back:before {
+ content: "\e7cd";
+}
+
+.icon-roi-select:before {
+ content: "\e7ce";
+}
+
+.icon-json:before {
+ content: "\e623";
+}
+
+.icon-fullscreen:before {
+ content: "\e648";
+}
+
+.icon-broken:before {
+ content: "\e9ad";
+}
+
+.icon-curve:before {
+ content: "\e9b0";
+}
+
+.icon-paste:before {
+ content: "\e963";
+}
+
+.icon-group:before {
+ content: "\e915";
+}
+
+.icon-ungroup:after {
+ content: "\e917";
+}
+
+.icon-arrow-dropdown:before {
+ content: "\e601";
+}
+.icon-save:before{
+ content: url('../images/icon/pc_icon_bc.png');
+}
+.icon-auto-layout:before{
+ content: url('../images/icon/pc_icon_zdbj.png');
+}
+.icon-solidline:before{
+ content: url('../images/icon/pc_icon_sx.png');
+}
+.icon-dottedline:before{
+ content: url('../images/icon/pc_icon_xx.png');
+}
+.icon-crudedottedline:before{
+ content: url('../images/icon/pc_icon_cxx.png');
+}
+.icon-return:before{
+ content: url('../images/icon/pc_icon_fh.png');
+}
+
diff --git a/packages-含有注释代码/assets/iconfont/iconfont.eot b/packages-含有注释代码/assets/iconfont/iconfont.eot
new file mode 100644
index 0000000..3eda34f
Binary files /dev/null and b/packages-含有注释代码/assets/iconfont/iconfont.eot differ
diff --git a/packages-含有注释代码/assets/iconfont/iconfont.js b/packages-含有注释代码/assets/iconfont/iconfont.js
new file mode 100644
index 0000000..9467797
--- /dev/null
+++ b/packages-含有注释代码/assets/iconfont/iconfont.js
@@ -0,0 +1 @@
+!function(i){var c,o='',h=(c=document.getElementsByTagName("script"))[c.length-1].getAttribute("data-injectcss");if(h&&!i.__iconfont__svg__cssinject__){i.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(c){console&&console.log(c)}}!function(c){if(document.addEventListener)if(~["complete","loaded","interactive"].indexOf(document.readyState))setTimeout(c,0);else{var h=function(){document.removeEventListener("DOMContentLoaded",h,!1),c()};document.addEventListener("DOMContentLoaded",h,!1)}else document.attachEvent&&(t=c,l=i.document,e=!1,(v=function(){try{l.documentElement.doScroll("left")}catch(c){return void setTimeout(v,50)}o()})(),l.onreadystatechange=function(){"complete"==l.readyState&&(l.onreadystatechange=null,o())});function o(){e||(e=!0,t())}var t,l,e,v}(function(){var c,h;(c=document.createElement("div")).innerHTML=o,o=null,(h=c.getElementsByTagName("svg")[0])&&(h.setAttribute("aria-hidden","true"),h.style.position="absolute",h.style.width=0,h.style.height=0,h.style.overflow="hidden",function(c,h){h.firstChild?function(c,h){h.parentNode.insertBefore(c,h)}(c,h.firstChild):h.appendChild(c)}(h,document.body))})}(window);
\ No newline at end of file
diff --git a/packages-含有注释代码/assets/iconfont/iconfont.svg b/packages-含有注释代码/assets/iconfont/iconfont.svg
new file mode 100644
index 0000000..f4aa4a7
--- /dev/null
+++ b/packages-含有注释代码/assets/iconfont/iconfont.svg
@@ -0,0 +1,95 @@
+
+
+
+
diff --git a/packages-含有注释代码/assets/iconfont/iconfont.ttf b/packages-含有注释代码/assets/iconfont/iconfont.ttf
new file mode 100644
index 0000000..d5ab0e1
Binary files /dev/null and b/packages-含有注释代码/assets/iconfont/iconfont.ttf differ
diff --git a/packages-含有注释代码/assets/iconfont/iconfont.woff b/packages-含有注释代码/assets/iconfont/iconfont.woff
new file mode 100644
index 0000000..6bfe8bd
Binary files /dev/null and b/packages-含有注释代码/assets/iconfont/iconfont.woff differ
diff --git a/packages-含有注释代码/assets/iconfont/iconfont.woff2 b/packages-含有注释代码/assets/iconfont/iconfont.woff2
new file mode 100644
index 0000000..482e53e
Binary files /dev/null and b/packages-含有注释代码/assets/iconfont/iconfont.woff2 differ
diff --git a/packages-含有注释代码/assets/images/client.png b/packages-含有注释代码/assets/images/client.png
new file mode 100644
index 0000000..f2fe60e
Binary files /dev/null and b/packages-含有注释代码/assets/images/client.png differ
diff --git a/packages-含有注释代码/assets/images/database.png b/packages-含有注释代码/assets/images/database.png
new file mode 100644
index 0000000..809869e
Binary files /dev/null and b/packages-含有注释代码/assets/images/database.png differ
diff --git a/packages-含有注释代码/assets/images/firewall.png b/packages-含有注释代码/assets/images/firewall.png
new file mode 100644
index 0000000..c364c42
Binary files /dev/null and b/packages-含有注释代码/assets/images/firewall.png differ
diff --git a/packages-含有注释代码/assets/images/icon/pc_icon_bc.png b/packages-含有注释代码/assets/images/icon/pc_icon_bc.png
new file mode 100644
index 0000000..06fb1cd
Binary files /dev/null and b/packages-含有注释代码/assets/images/icon/pc_icon_bc.png differ
diff --git a/packages-含有注释代码/assets/images/icon/pc_icon_cxx.png b/packages-含有注释代码/assets/images/icon/pc_icon_cxx.png
new file mode 100644
index 0000000..92ab002
Binary files /dev/null and b/packages-含有注释代码/assets/images/icon/pc_icon_cxx.png differ
diff --git a/packages-含有注释代码/assets/images/icon/pc_icon_fh.png b/packages-含有注释代码/assets/images/icon/pc_icon_fh.png
new file mode 100644
index 0000000..50f8b3c
Binary files /dev/null and b/packages-含有注释代码/assets/images/icon/pc_icon_fh.png differ
diff --git a/packages-含有注释代码/assets/images/icon/pc_icon_sx.png b/packages-含有注释代码/assets/images/icon/pc_icon_sx.png
new file mode 100644
index 0000000..3800bb8
Binary files /dev/null and b/packages-含有注释代码/assets/images/icon/pc_icon_sx.png differ
diff --git a/packages-含有注释代码/assets/images/icon/pc_icon_xx.png b/packages-含有注释代码/assets/images/icon/pc_icon_xx.png
new file mode 100644
index 0000000..3109436
Binary files /dev/null and b/packages-含有注释代码/assets/images/icon/pc_icon_xx.png differ
diff --git a/packages-含有注释代码/assets/images/icon/pc_icon_zdbj.png b/packages-含有注释代码/assets/images/icon/pc_icon_zdbj.png
new file mode 100644
index 0000000..ae42882
Binary files /dev/null and b/packages-含有注释代码/assets/images/icon/pc_icon_zdbj.png differ
diff --git a/packages-含有注释代码/assets/images/server.png b/packages-含有注释代码/assets/images/server.png
new file mode 100644
index 0000000..0e49219
Binary files /dev/null and b/packages-含有注释代码/assets/images/server.png differ
diff --git a/packages-含有注释代码/assets/logo.png b/packages-含有注释代码/assets/logo.png
new file mode 100644
index 0000000..fb83843
Binary files /dev/null and b/packages-含有注释代码/assets/logo.png differ
diff --git a/packages-含有注释代码/cc-elements/button.vue b/packages-含有注释代码/cc-elements/button.vue
new file mode 100644
index 0000000..52d48c6
--- /dev/null
+++ b/packages-含有注释代码/cc-elements/button.vue
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+
diff --git a/packages-含有注释代码/cc-elements/checkbox.vue b/packages-含有注释代码/cc-elements/checkbox.vue
new file mode 100644
index 0000000..aa36f62
--- /dev/null
+++ b/packages-含有注释代码/cc-elements/checkbox.vue
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages-含有注释代码/cc-elements/dropdown.vue b/packages-含有注释代码/cc-elements/dropdown.vue
new file mode 100644
index 0000000..497489e
--- /dev/null
+++ b/packages-含有注释代码/cc-elements/dropdown.vue
@@ -0,0 +1,228 @@
+
+
+ {{edgeItem.label}}
+
+
+
+
+
+
diff --git a/packages-含有注释代码/cc-elements/index.js b/packages-含有注释代码/cc-elements/index.js
new file mode 100644
index 0000000..ae59602
--- /dev/null
+++ b/packages-含有注释代码/cc-elements/index.js
@@ -0,0 +1,18 @@
+/**
+ * @author: winyuan
+ * @data: 2019/11/14
+ * @repository: https://github.com/winyuan
+ * @description: cceditor内部的通用组件
+ */
+
+import Checkbox from './checkbox'
+import Button from './button'
+import Dropdown from './dropdown'
+import Loading from './loading'
+
+export {
+ Checkbox,
+ Button,
+ Dropdown,
+ Loading
+}
diff --git a/packages-含有注释代码/cc-elements/loading.vue b/packages-含有注释代码/cc-elements/loading.vue
new file mode 100644
index 0000000..f410a92
--- /dev/null
+++ b/packages-含有注释代码/cc-elements/loading.vue
@@ -0,0 +1,92 @@
+
+
+
+
+
+
{{ loadingText }}
+
+
+
+
+
+
diff --git a/packages-含有注释代码/cc-topology/index.js b/packages-含有注释代码/cc-topology/index.js
new file mode 100644
index 0000000..70e0b68
--- /dev/null
+++ b/packages-含有注释代码/cc-topology/index.js
@@ -0,0 +1,17 @@
+/**
+ * @author: winyuan
+ * @data: 2019/08/20
+ * @repository: https://github.com/winyuan
+ * @description: 导入组件,组件必须声明 name
+ */
+
+import CCTopology from './src/cc-topology'
+
+// 为组件提供 install 安装方法,供按需引入
+CCTopology.install = function(Vue) {
+ console.info('install----CCEditor: CCTopology----')
+ Vue.component(CCTopology.name, CCTopology)
+}
+
+// 默认导出组件
+export default CCTopology
diff --git a/packages-含有注释代码/cc-topology/src/behavior/click-add-edge.js b/packages-含有注释代码/cc-topology/src/behavior/click-add-edge.js
new file mode 100644
index 0000000..267f299
--- /dev/null
+++ b/packages-含有注释代码/cc-topology/src/behavior/click-add-edge.js
@@ -0,0 +1,96 @@
+/**
+ * @author: winyuan
+ * @data: 2019/07/05
+ * @repository: https://github.com/winyuan
+ * @description: edit mode: 通过先后点击两个节点来添加连线(容易和节点点击动作交叉,已弃用)
+ */
+
+// import G6 from '@antv/g6'
+// import theme from '../theme'
+
+export default {
+ name: 'click-add-edge',
+ options: {
+ getEvents() {
+ return {
+ 'node:click': 'onNodeClick',
+ 'canvas:mousemove': 'onMousemove',
+ 'edge:click': 'onEdgeClick', // 点击空白处,取消边
+ }
+ },
+ onNodeClick(event) {
+ let graph = this.graph
+ let node = event.item
+ let point = { x: event.x, y: event.y }
+ let model = node.getModel()
+ let edgeShape = self.currentEdgeShape.guid || 'line'
+ if (this.addingEdge && this.edge) {
+ // 点击第二个节点
+ graph.updateItem(this.edge, {
+ target: model.id
+ })
+ this.edge = null
+ this.addingEdge = false
+ // 记录【连线】前后的数据状态
+ if (this.historyData) {
+ let graph = this.graph
+ // 如果当前点过【撤销】了,连线后没有【重做】功能
+ // 重置undoCount,连线后的数据给(当前所在historyIndex + 1),且清空这个时间点之后的记录
+ if (self.undoCount > 0) {
+ self.historyIndex = self.historyIndex - self.undoCount // 此时的historyIndex应当更新为【撤销】后所在的索引位置
+ for (let i = 1; i <= self.undoCount; i++) {
+ let key = `graph_history_${self.historyIndex + i}`
+ self.removeHistoryData(key)
+ }
+ self.undoCount = 0
+ } else {
+ // 正常顺序执行的情况,记录【连线】前的数据状态
+ let key = `graph_history_${self.historyIndex}`
+ self.addHistoryData(key, this.historyData)
+ }
+ // 记录【连线】后的数据状态
+ self.historyIndex += 1
+ let key = `graph_history_${self.historyIndex}`
+ let currentData = JSON.stringify(graph.save())
+ self.addHistoryData(key, currentData)
+ }
+ } else {
+ // 点击第一个节点
+ this.historyData = JSON.stringify(graph.save())
+ if (edgeShape === 'stepline') {
+ this.edge = graph.addItem('edge', {
+ source: model.id,
+ target: point,
+ type: edgeShape,
+ controlPoints: [{ x: 100, y: 70 }]
+ })
+ } else {
+ this.edge = graph.addItem('edge', {
+ source: model.id,
+ target: point,
+ type: edgeShape
+ })
+ }
+ this.addingEdge = true
+ }
+ },
+ onMousemove(event) {
+ const point = { x: event.x, y: event.y }
+ if (this.addingEdge && this.edge) {
+ this.graph.updateItem(this.edge, {
+ target: point
+ })
+ }
+ },
+ onEdgeClick(ev) {
+ let graph = this.graph
+ const currentEdge = ev.item
+ // 拖拽过程中,点击会点击到新增的边上
+ if (this.addingEdge && this.edge === currentEdge) {
+ graph.removeItem(this.edge)
+ this.edge = null
+ this.addingEdge = false
+ }
+ }
+ }
+}
diff --git a/packages-含有注释代码/cc-topology/src/behavior/click-event-edit.js b/packages-含有注释代码/cc-topology/src/behavior/click-event-edit.js
new file mode 100644
index 0000000..3af735e
--- /dev/null
+++ b/packages-含有注释代码/cc-topology/src/behavior/click-event-edit.js
@@ -0,0 +1,161 @@
+/**
+ * @author: winyuan
+ * @data: 2019/07/16
+ * @repository: https://github.com/winyuan
+ * @description: edit mode: 鼠标点击交互
+ */
+
+// 用来获取调用此js的vue组件实例(this)
+let vm = null
+
+const sendThis = (_this) => {
+ vm = _this
+}
+
+export default {
+ sendThis, // 暴露函数
+ name: 'click-event-edit',
+ options: {
+ getEvents() {
+ return {
+ 'node:click': 'onNodeClick',
+ 'node:contextmenu': 'onNodeRightClick',
+ 'edge:click': 'onEdgeClick',
+ 'edge:contextmenu': 'onEdgeRightClick',
+ 'canvas:click': 'onCanvasClick'
+ }
+ },
+ onNodeClick(event) {
+ // todo..."selected"是g6自带的状态 ,在"drag-add-edge"中的"node:mouseup"事件也会触发,故此处不需要设置"selected"状态
+ //点击事件
+ // let clickNode = event.item;
+ // clickNode.setState('selected', !clickNode.hasState('selected'));
+ vm.currentFocus = 'node'
+ vm.rightMenuShow = false
+ this.updateVmData(event)
+ },
+ onNodeRightClick(event) {
+ console.log(event,'88888888888888888888888888888')
+ let graph = vm.graph
+ let clickNode = event.item
+ let clickNodeModel = clickNode.getModel()
+ let selectedNodes = graph.findAllByState('node', 'selected')
+ let selectedNodeIds = selectedNodes.map(item => {return item.getModel().id})
+ vm.selectedNode = clickNode
+ // 如果当前点击节点是之前选中的某个节点,就进行下面的处理
+ if (selectedNodes.length > 1 && selectedNodeIds.indexOf(clickNodeModel.id) > -1) {
+ vm.rightMenuShow = true
+ let rightMenu = vm.$refs.rightMenu
+ rightMenu.style.left = event.clientX + 'px'
+ rightMenu.style.top = event.clientY + 'px'
+ } else {
+ // 隐藏右键菜单
+ vm.rightMenuShow = false
+ // 先取消所有节点的选中状态
+ selectedNodes.forEach(node => {
+ node.setState('selected', false)
+ })
+ // 再添加该节点的选中状态
+ clickNode.setState('selected', true)
+ vm.currentFocus = 'node'
+ this.updateVmData(event)
+ }
+ graph.paint()
+ },
+ onEdgeClick(event) {
+ // todo
+ let clickEdge = event.item
+ // // todo 入口
+ clickEdge.setState('selected', !clickEdge.hasState('selected'))
+
+
+ this.onEdgeRightClick(event)
+
+
+ vm.currentFocus = 'edge'
+ vm.rightMenuShow = false
+ this.updateVmData(event)
+ },
+ onEdgeRightClick(event) {
+ let graph = vm.graph
+ let clickEdge = event.item
+ let clickEdgeModel = clickEdge.getModel()
+ let selectedEdges = graph.findAllByState('edge', 'selected')
+ // 如果当前点击节点不是之前选中的单个节点,才进行下面的处理
+ if (!(selectedEdges.length === 1 && clickEdgeModel.id === selectedEdges[0].getModel().id)) {
+ // 先取消所有节点的选中状态
+ selectedEdges.forEach(edge => {
+ edge.setState('selected', false)
+ })
+ // 再添加该节点的选中状态
+ clickEdge.setState('selected', true)
+ vm.currentFocus = 'edge'
+ this.updateVmData(event)
+ }
+ // eslint-disable-next-line no-unused-vars
+ let point = { x: event.x, y: event.y }
+ },
+ onCanvasClick() {
+ vm.currentFocus = 'canvas'
+ vm.rightMenuShow = false
+ },
+ updateVmData(event) {
+ if (event.item._cfg.type === 'node') {
+ // 更新vm的data: selectedNode 和 selectedNodeParams
+ //TODO 修改右侧输入信息
+ let clickNode = event.item
+ if (clickNode.hasState('selected')) {
+ console.log(clickNode.getModel())
+
+ let clickNodeModel = clickNode.getModel()
+ vm.selectedNode = clickNode
+ //todo 修改右侧输入信息
+ let nodeAppConfig = { ...vm.nodeAppConfig }
+
+
+ // console.log(nodeAppConfig,'nodeAppConfig')
+
+
+
+ Object.keys(nodeAppConfig).forEach(function(key) {
+ nodeAppConfig[key] = ''
+ })
+ let uuids =[]
+ for (let i = 0;i {
+ vm = _this
+}
+
+import G6 from '@antv/g6'
+import theme from '../theme'
+
+export default {
+ sendThis, // 暴露函数
+ name: 'drag-add-edge',
+ options: {
+ getEvents() {
+ return {
+ 'node:mousedown': 'onNodeMousedown',
+ 'node:mouseup': 'onNodeMouseup',
+ 'edge:mouseup': 'onEdgeMouseup',
+ 'mousemove': 'onMousemove'
+ }
+ },
+ onNodeMousedown(event) {
+ let self = this
+ // 交互过程中的信息
+ self.evtInfo = {
+ action: null,
+ node: event.item,
+ target: event.target
+ }
+ if (self.evtInfo.target && self.evtInfo.target.attrs.name) {
+ // todo...未来可能针对锚点增加其它功能(例如拖拽调整大小)
+ switch (self.evtInfo.target.attrs.name) {
+ case 'anchor':
+ self.evtInfo.action = 'drawEdge'
+ break
+ }
+ }
+ if (self.evtInfo && self.evtInfo.action) {
+ self[self.evtInfo.action].start.call(self, event)
+ }
+ },
+ onNodeMouseup(event) {
+ let self = this
+ if (self.evtInfo && self.evtInfo.action) {
+ self[self.evtInfo.action].stop.call(self, event)
+ }
+ },
+ onEdgeMouseup(event) {
+ let self = this
+ if (self.evtInfo && self.evtInfo.action === 'drawEdge') {
+ self[self.evtInfo.action].stop.call(self, event)
+ }
+ },
+ onMousemove(event) {
+ let self = this
+ if (self.evtInfo && self.evtInfo.action) {
+ self[self.evtInfo.action].move.call(self, event)
+ }
+ },
+ drawEdge: {
+ isMoving: false,
+ currentLine: null,
+ start: function(event) {
+ console.log(event)
+ let self = this
+ let themeStyle = theme.defaultStyle // todo...先使用默认主题,后期可能增加其它风格的主体
+
+ // ************** 暂存【连线】前的数据状态 start **************
+ let graph = vm.graph
+ self.historyData = JSON.stringify(graph.save())
+ // ************** 暂存【连线】前的数据状态 end **************
+
+ let sourceAnchor
+ let sourceNodeModel = self.evtInfo.node.getModel()
+ // 锚点数据
+ let anchorPoints = self.evtInfo.node.getAnchorPoints()
+ // 处理线条目标点
+ if (anchorPoints && anchorPoints.length) {
+ // 获取距离指定坐标最近的一个锚点
+ sourceAnchor = {
+ x: event.x,
+ y: event.y
+ }
+ }
+ if (self.graph.$C.edge.type=='dottedline'){
+ console.log(1)
+ self.drawEdge.currentLine = self.graph.addItem('edge', {
+ // id: G6.Util.uniqueId(), // 这种生成id的方式有bug,会重复
+ id: utils.generateUUID(),
+ // 起始节点
+ source: sourceNodeModel.id,
+ sourceAnchor: sourceAnchor ? sourceAnchor.anchorIndex : '',
+ // 终止节点/位置
+ target: {
+ x: event.x,
+ y: event.y
+ },
+ type: self.graph.$C.edge.type || 'solidline',
+ //todo 修改类型
+ // style:null
+ style: G6.Util.mix({}, themeStyle.edgeStyle.dottedline, self.graph.$C.edge.style)
+ })
+ }else if (self.graph.$C.edge.type=='solidline'){
+ console.log(2)
+ self.drawEdge.currentLine = self.graph.addItem('edge', {
+ // id: G6.Util.uniqueId(), // 这种生成id的方式有bug,会重复
+ id: utils.generateUUID(),
+ // 起始节点
+ source: sourceNodeModel.id,
+ sourceAnchor: sourceAnchor ? sourceAnchor.anchorIndex : '',
+ // 终止节点/位置
+ target: {
+ x: event.x,
+ y: event.y
+ },
+ type: self.graph.$C.edge.type || 'solidline',
+ //todo 修改类型
+ // style:null
+ style: G6.Util.mix({}, themeStyle.edgeStyle.solidline, self.graph.$C.edge.style)
+ })
+ }else if (self.graph.$C.edge.type=='crudedottedline'){
+ console.log(3)
+
+ self.drawEdge.currentLine = self.graph.addItem('edge', {
+ // id: G6.Util.uniqueId(), // 这种生成id的方式有bug,会重复
+ id: utils.generateUUID(),
+ // 起始节点
+ source: sourceNodeModel.id,
+ sourceAnchor: sourceAnchor ? sourceAnchor.anchorIndex : '',
+ // 终止节点/位置
+ target: {
+ x: event.x,
+ y: event.y
+ },
+ type: self.graph.$C.edge.type || 'solidline',
+ //todo 修改类型
+ // style:null
+ style: G6.Util.mix({}, themeStyle.edgeStyle.crudedottedline, self.graph.$C.edge.style)
+ })
+ }
+
+ // console.log(self.drawEdge)
+ console.log(self.graph.$C.edge.type)
+ // self.drawEdge.currentLine.style = G6.Util.mix({}, themeStyle.edgeStyle.dottedline, self.graph.$C.edge.style)
+ self.drawEdge.isMoving = true
+ },
+ move(event) {
+ let self = this
+ if (self.drawEdge.isMoving && self.drawEdge.currentLine) {
+ self.graph.updateItem(self.drawEdge.currentLine, {
+ target: {
+ x: event.x,
+ y: event.y
+ }
+ })
+ }
+ },
+ stop(event) {
+ let self = this
+ if (self.drawEdge.isMoving) {
+ if (self.drawEdge.currentLine === event.item) {
+ // 画线过程中点击则移除当前画线
+ self.graph.removeItem(event.item)
+ } else {
+ let targetNode = event.item
+ let targetNodeModel = targetNode.getModel()
+ let targetAnchor = null
+ // 锚点数据
+ let anchorPoints = targetNode.getAnchorPoints()
+ // 处理线条目标点
+ if (anchorPoints && anchorPoints.length) {
+ // 获取距离指定坐标最近的一个锚点
+ targetAnchor = { x: event.x, y: event.y }
+ }
+ self.graph.updateItem(self.drawEdge.currentLine, {
+ target: targetNodeModel.id,
+ targetAnchor: targetAnchor ? targetAnchor.anchorIndex : ''
+ })
+
+ // ************** 记录historyData的逻辑 start **************
+ if (this.historyData) {
+ let graph = this.graph
+ // 如果当前点过【撤销】了,拖拽节点后没有【重做】功能
+ // 重置undoCount,拖拽后的数据给(当前所在historyIndex + 1),且清空这个时间点之后的记录
+ if (vm.undoCount > 0) {
+ vm.historyIndex = vm.historyIndex - vm.undoCount // 此时的historyIndex应当更新为【撤销】后所在的索引位置
+ for (let i = 1; i <= vm.undoCount; i++) {
+ let key = `graph_history_${vm.historyIndex + i}`
+ vm.removeHistoryData(key)
+ }
+ vm.undoCount = 0
+ } else {
+ // 正常顺序执行的情况,记录拖拽前的数据状态
+ let key = `graph_history_${vm.historyIndex}`
+ vm.addHistoryData(key, this.historyData)
+ }
+ // 记录拖拽后的数据状态
+ vm.historyIndex += 1
+ let key = `graph_history_${vm.historyIndex}`
+ let currentData = JSON.stringify(graph.save())
+ vm.addHistoryData(key, currentData)
+ }
+ // ************** 记录historyData的逻辑 end **************
+ }
+ }
+ self.drawEdge.currentLine = null
+ self.drawEdge.isMoving = false
+ self.evtInfo = null
+ }
+ }
+ }
+}
diff --git a/packages-含有注释代码/cc-topology/src/behavior/drag-event-edit.js b/packages-含有注释代码/cc-topology/src/behavior/drag-event-edit.js
new file mode 100644
index 0000000..eb77d22
--- /dev/null
+++ b/packages-含有注释代码/cc-topology/src/behavior/drag-event-edit.js
@@ -0,0 +1,54 @@
+/**
+ * @author: winyuan
+ * @data: 2019/07/16
+ * @repository: https://github.com/winyuan
+ * @description: edit mode: 鼠标拖动节点的交互(记录拖拽前后的数据,用于【撤销】和【重做】)
+ */
+
+// 用来获取调用此js的vue组件实例(this)
+let vm = null
+
+const sendThis = (_this) => {
+ vm = _this
+}
+
+export default {
+ sendThis, // 暴露函数
+ name: 'drag-event-edit',
+ options: {
+ getEvents() {
+ return {
+ 'node:dragstart': 'onNodeDragstart',
+ 'node:dragend': 'onNodeDragend'
+ }
+ },
+ onNodeDragstart() {
+ let graph = vm.graph
+ this.historyData = JSON.stringify(graph.save())
+ },
+ onNodeDragend() {
+ if (this.historyData) {
+ let graph = this.graph
+ // 如果当前点过【撤销】了,拖拽节点后没有【重做】功能
+ // 重置undoCount,拖拽后的数据给(当前所在historyIndex + 1),且清空这个时间点之后的记录
+ if (vm.undoCount > 0) {
+ vm.historyIndex = vm.historyIndex - vm.undoCount // 此时的historyIndex应当更新为【撤销】后所在的索引位置
+ for (let i = 1; i <= vm.undoCount; i++) {
+ let key = `graph_history_${vm.historyIndex + i}`
+ vm.removeHistoryData(key)
+ }
+ vm.undoCount = 0
+ } else {
+ // 正常顺序执行的情况,记录拖拽前的数据状态
+ let key = `graph_history_${vm.historyIndex}`
+ vm.addHistoryData(key, this.historyData)
+ }
+ // 记录拖拽后的数据状态
+ vm.historyIndex += 1
+ let key = `graph_history_${vm.historyIndex}`
+ let currentData = JSON.stringify(graph.save())
+ vm.addHistoryData(key, currentData)
+ }
+ }
+ }
+}
diff --git a/packages-含有注释代码/cc-topology/src/behavior/hover-event-edit.js b/packages-含有注释代码/cc-topology/src/behavior/hover-event-edit.js
new file mode 100644
index 0000000..9167b72
--- /dev/null
+++ b/packages-含有注释代码/cc-topology/src/behavior/hover-event-edit.js
@@ -0,0 +1,26 @@
+/**
+ * @author: winyuan
+ * @data: 2019/07/16
+ * @repository: https://github.com/winyuan
+ * @description: edit mode: 悬浮交互
+ */
+
+export default {
+ name: 'hover-event-edit',
+ options: {
+ getEvents() {
+ return {
+ 'node:mouseover': 'onNodeHover',
+ 'node:mouseout': 'onNodeOut'
+ }
+ },
+ onNodeHover(event) {
+ let hoverNode = event.item
+ hoverNode.setState('hover', true)
+ },
+ onNodeOut(event) {
+ let hoverNode = event.item
+ hoverNode.setState('hover', false)
+ }
+ }
+}
diff --git a/packages-含有注释代码/cc-topology/src/behavior/index.js b/packages-含有注释代码/cc-topology/src/behavior/index.js
new file mode 100644
index 0000000..2ed8c8c
--- /dev/null
+++ b/packages-含有注释代码/cc-topology/src/behavior/index.js
@@ -0,0 +1,29 @@
+/**
+ * @author: winyuan
+ * @data: 2019/07/16
+ * @repository: https://github.com/winyuan
+ * @description: register behaviors
+ */
+
+import dragAddEdge from './drag-add-edge'
+import hoverEventEdit from './hover-event-edit'
+import clickEventEdit from './click-event-edit'
+import dragEventEdit from './drag-event-edit'
+import keyupEventEdit from './keyup-event-edit'
+
+const obj = {
+ dragAddEdge,
+ hoverEventEdit,
+ clickEventEdit,
+ dragEventEdit,
+ keyupEventEdit,
+}
+
+export default {
+ obj,
+ register(G6) {
+ Object.values(obj).map(item => {
+ G6.registerBehavior(item.name, item.options)
+ })
+ }
+}
diff --git a/packages-含有注释代码/cc-topology/src/behavior/keyup-event-edit.js b/packages-含有注释代码/cc-topology/src/behavior/keyup-event-edit.js
new file mode 100644
index 0000000..7867acc
--- /dev/null
+++ b/packages-含有注释代码/cc-topology/src/behavior/keyup-event-edit.js
@@ -0,0 +1,64 @@
+/**
+ * @author: winyuan
+ * @data: 2019/07/16
+ * @repository: https://github.com/winyuan
+ * @description: edit mode: 键盘事件的交互,主要是删除节点和连线(记录删除前后的数据,用于【撤销】和【重做】)
+ */
+
+// 用来获取调用此js的vue组件实例(this)
+let vm = null
+
+const sendThis = (_this) => {
+ vm = _this
+}
+
+export default {
+ sendThis, // 暴露函数
+ name: 'keyup-event-edit',
+ options: {
+ getEvents() {
+ return {
+ 'keyup': 'onKeyup'
+ }
+ },
+ onKeyup(event) {
+ let graph = this.graph
+ let selectedNodes = graph.findAllByState('node', 'selected')
+ let selectedEdges = graph.findAllByState('edge', 'selected')
+ if (event.keyCode === 46 && (selectedNodes.length > 0 || selectedEdges.length > 0)) {
+
+ // ************** 记录【删除】前的数据状态 start **************
+ let historyData = JSON.stringify(graph.save())
+ let key = `graph_history_${vm.historyIndex}`
+ vm.addHistoryData(key, historyData)
+ // ************** 记录【删除】前的数据状态 end **************
+
+ // 开始删除
+ for (let i = 0; i < selectedNodes.length; i++) {
+ graph.removeItem(selectedNodes[i])
+ }
+ for (let i = 0; i < selectedEdges.length; i++) {
+ graph.removeItem(selectedEdges[i])
+ }
+
+ // ************** 记录【删除】后的数据状态 start **************
+ // 如果当前点过【撤销】了,拖拽节点后将取消【重做】功能
+ // 重置undoCount,【删除】后的数据状态给(当前所在historyIndex + 1),且清空这个时间点之后的记录
+ if (vm.undoCount > 0) {
+ vm.historyIndex = vm.historyIndex - vm.undoCount // 此时的historyIndex应当更新为【撤销】后所在的索引位置
+ for (let i = 1; i <= vm.undoCount; i++) {
+ let key = `graph_history_${vm.historyIndex + i}`
+ vm.removeHistoryData(key)
+ }
+ vm.undoCount = 0
+ }
+ // 记录【删除】后的数据状态
+ vm.historyIndex += 1
+ key = `graph_history_${vm.historyIndex}`
+ let currentData = JSON.stringify(graph.save())
+ vm.addHistoryData(key, currentData)
+ // ************** 记录【删除】后的数据状态 end **************
+ }
+ }
+ }
+}
diff --git a/packages-含有注释代码/cc-topology/src/cc-topology.vue b/packages-含有注释代码/cc-topology/src/cc-topology.vue
new file mode 100644
index 0000000..19531b9
--- /dev/null
+++ b/packages-含有注释代码/cc-topology/src/cc-topology.vue
@@ -0,0 +1,1412 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
{{ nodeType.name }}
+
+
+
![]()
+
{{node.label}}
+
+
+
+
+
+
+
+
+
+
+
+
节点
+
+ 名称
+
+
+
+ 视频地址
+
+ 设备序号
+
+ 管道号
+
+
+
+ uuid
+
+
+
+
+
+
+ 设备ip
+
+
+
+ 网关类型
+
+
+
+
+
+
+
+
连线
+
+ 连线标签
+
+
+
+
+
+
+
+
+
+
+ 阀值
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages-含有注释代码/cc-topology/src/config/edge.js b/packages-含有注释代码/cc-topology/src/config/edge.js
new file mode 100644
index 0000000..658b4ce
--- /dev/null
+++ b/packages-含有注释代码/cc-topology/src/config/edge.js
@@ -0,0 +1,18 @@
+/**
+ * @author: winyuan
+ * @data: 2019/08/16
+ * @repository: https://github.com/winyuan
+ * @description: 线条的后期设置
+ */
+//配置是否有箭头
+import G6 from '@antv/g6'
+export default {
+ type: 'solidline',
+ style: {
+ startArrow: false,
+ endArrow: {
+ path: G6.Arrow.vee(10, 20, 15),
+ d: 25
+ }
+ }
+}
diff --git a/packages-含有注释代码/cc-topology/src/config/index.js b/packages-含有注释代码/cc-topology/src/config/index.js
new file mode 100644
index 0000000..6af1d9a
--- /dev/null
+++ b/packages-含有注释代码/cc-topology/src/config/index.js
@@ -0,0 +1,12 @@
+/**
+ * @author: winyuan
+ * @data: 2019/08/16
+ * @repository: https://github.com/winyuan
+ * @description: 配置
+ */
+
+import edge from './edge'
+
+export default {
+ edge
+}
diff --git a/packages-含有注释代码/cc-topology/src/edge/base.js b/packages-含有注释代码/cc-topology/src/edge/base.js
new file mode 100644
index 0000000..4a10aea
--- /dev/null
+++ b/packages-含有注释代码/cc-topology/src/edge/base.js
@@ -0,0 +1,30 @@
+/**
+ * @author: winyuan
+ * @data: 2019/07/18
+ * @repository: https://github.com/winyuan
+ * @description: 线公共方法
+ */
+
+import utils from '../utils'
+
+export default {
+ draw(cfg, group) {
+ const { startPoint, endPoint } = cfg
+ const keyShape = group.addShape('path', {
+ className: 'edge-shape',
+ attrs: {
+ ...cfg.style,
+ path: [
+ ['M', startPoint.x, startPoint.y],
+ ['L', endPoint.x, endPoint.y]
+ ]
+ },
+ name: 'edge-shape'
+ })
+ return keyShape
+ },
+ setState(name, value, item) {
+ // 设置边状态
+ utils.edge.setState(name, value, item)
+ }
+}
diff --git a/packages-含有注释代码/cc-topology/src/edge/cc-cubic.js b/packages-含有注释代码/cc-topology/src/edge/cc-cubic.js
new file mode 100644
index 0000000..21382ad
--- /dev/null
+++ b/packages-含有注释代码/cc-topology/src/edge/cc-cubic.js
@@ -0,0 +1,16 @@
+/**
+ * @author: winyuan
+ * @data: 2019/07/18
+ * @repository: https://github.com/winyuan
+ * @description: 曲线
+ */
+
+import base from './base'
+
+export default {
+ name: 'cubic',
+ extendName: 'cubic',
+ options: {
+ ...base
+ }
+}
diff --git a/packages-含有注释代码/cc-topology/src/edge/crudedottedline.js b/packages-含有注释代码/cc-topology/src/edge/crudedottedline.js
new file mode 100644
index 0000000..4250df0
--- /dev/null
+++ b/packages-含有注释代码/cc-topology/src/edge/crudedottedline.js
@@ -0,0 +1,53 @@
+/**
+ * @author: winyuan
+ * @data: 2019/10/22
+ * @repository: https://github.com/winyuan
+ * @description: 折线
+ */
+
+import base from './base'
+import theme from '../theme'
+
+/**
+ * fix: 继承 polyline 在 G6 3.x 里面有bug
+ * 现实现方法参考 https://g6.antv.vision/zh/examples/shape/customEdge#customPolyline
+ */
+export default {
+ name: 'crudedottedline',
+ extendName: 'line',
+ options: {
+ ...base,
+ getPath(points) {
+ const startPoint = points[0]
+ const endPoint = points[1]
+ return [
+ ['M', startPoint.x, startPoint.y],
+ ['L', endPoint.x / 3 + 2 / 3 * startPoint.x, startPoint.y],
+ ['L', endPoint.x / 3 + 2 / 3 * startPoint.x, endPoint.y],
+ ['L', endPoint.x, endPoint.y]
+ ]
+ },
+ getShapeStyle(cfg) {
+ const { startPoint, endPoint } = cfg
+ const controlPoints = this.getControlPoints(cfg)
+ let points = [startPoint] // 添加起始点
+ // 添加控制点
+ if (controlPoints) {
+ points = points.concat(controlPoints)
+ }
+ // 添加结束点
+ points.push(endPoint)
+ const path = this.getPath(points)
+ const themeStyle = theme.darkStyle // todo...先使用默认主题,后期可能增加其它风格的主体
+ const style = {
+ stroke: '#BBB',
+ lineWidth: 1,
+ path,
+ startArrow: false,
+ endArrow: true,
+ ...themeStyle.edgeStyle.default
+ }
+ return style
+ }
+ }
+}
diff --git a/packages-含有注释代码/cc-topology/src/edge/dottedline.js b/packages-含有注释代码/cc-topology/src/edge/dottedline.js
new file mode 100644
index 0000000..2576283
--- /dev/null
+++ b/packages-含有注释代码/cc-topology/src/edge/dottedline.js
@@ -0,0 +1,53 @@
+/**
+ * @author: winyuan
+ * @data: 2019/10/22
+ * @repository: https://github.com/winyuan
+ * @description: 折线
+ */
+
+import base from './base'
+import theme from '../theme'
+
+/**
+ * fix: 继承 polyline 在 G6 3.x 里面有bug
+ * 现实现方法参考 https://g6.antv.vision/zh/examples/shape/customEdge#customPolyline
+ */
+export default {
+ name: 'dottedline',
+ extendName: 'line',
+ options: {
+ ...base,
+ getPath(points) {
+ const startPoint = points[0]
+ const endPoint = points[1]
+ return [
+ ['M', startPoint.x, startPoint.y],
+ ['L', endPoint.x / 3 + 2 / 3 * startPoint.x, startPoint.y],
+ ['L', endPoint.x / 3 + 2 / 3 * startPoint.x, endPoint.y],
+ ['L', endPoint.x, endPoint.y]
+ ]
+ },
+ getShapeStyle(cfg) {
+ const { startPoint, endPoint } = cfg
+ const controlPoints = this.getControlPoints(cfg)
+ let points = [startPoint] // 添加起始点
+ // 添加控制点
+ if (controlPoints) {
+ points = points.concat(controlPoints)
+ }
+ // 添加结束点
+ points.push(endPoint)
+ const path = this.getPath(points)
+ const themeStyle = theme.darkStyle // todo...先使用默认主题,后期可能增加其它风格的主体
+ const style = {
+ stroke: '#BBB',
+ lineWidth: 1,
+ path,
+ startArrow: false,
+ endArrow: true,
+ ...themeStyle.edgeStyle.default
+ }
+ return style
+ }
+ }
+}
diff --git a/packages-含有注释代码/cc-topology/src/edge/index.js b/packages-含有注释代码/cc-topology/src/edge/index.js
new file mode 100644
index 0000000..0ea5ba3
--- /dev/null
+++ b/packages-含有注释代码/cc-topology/src/edge/index.js
@@ -0,0 +1,24 @@
+/**
+ * @author: winyuan
+ * @data: 2019/07/18
+ * @repository: https://github.com/winyuan
+ * @description: register edges
+ */
+
+import ccCubic from './cc-cubic'
+import dottedline from './dottedline'
+import solidline from './solidline'
+import crudedottedline from './crudedottedline'
+
+const obj = {
+ ccCubic,
+ dottedline,
+ solidline,
+ crudedottedline
+}
+
+export default function(G6) {
+ Object.values(obj).map(item => {
+ G6.registerEdge(item.name, item.options, item.extendName)
+ })
+}
diff --git a/packages-含有注释代码/cc-topology/src/edge/polyline-finding.js b/packages-含有注释代码/cc-topology/src/edge/polyline-finding.js
new file mode 100644
index 0000000..39531fc
--- /dev/null
+++ b/packages-含有注释代码/cc-topology/src/edge/polyline-finding.js
@@ -0,0 +1,275 @@
+/**
+ * 带圆角折线连线的策略
+ * 文档:https://www.yuque.com/antv/blog/eyi70n
+ * 参考:https://github.com/guozhaolong/wfd/blob/master/src/item/edge.js
+ * 引用:https://github.com/OXOYO/X-Flowchart-Vue/blob/master/src/global/lib/g6/edge/polylineFinding.js
+ */
+
+// 折线寻径
+export const polylineFinding = function(sNode, tNode, sPort, tPort, offset = 10) {
+ const sourceBBox = sNode && sNode.getBBox ? sNode.getBBox() : getPointBBox(sPort)
+ const targetBBox = tNode && tNode.getBBox ? tNode.getBBox() : getPointBBox(tPort)
+ // 获取节点带 offset 的区域(扩展区域)
+ const sBBox = getExpandedBBox(sourceBBox, offset)
+ const tBBox = getExpandedBBox(targetBBox, offset)
+ // 获取扩展区域上的起始和终止连接点
+ const sPoint = getExpandedPort(sBBox, sPort)
+ const tPoint = getExpandedPort(tBBox, tPort)
+ // 获取合法折点集
+ let points = getConnectablePoints(sBBox, tBBox, sPoint, tPoint)
+ // 过滤合法点集,预处理、剪枝等
+ filterConnectablePoints(points, sBBox)
+ // 过滤合法点集,预处理、剪枝等
+ filterConnectablePoints(points, tBBox)
+ // 用 A-Star 算法寻径
+ let polylinePoints = AStar(points, sPoint, tPoint, sBBox, tBBox)
+ return polylinePoints
+}
+
+const getPointBBox = function(t) {
+ return {
+ centerX: t.x,
+ centerY: t.y,
+ minX: t.x,
+ minY: t.y,
+ maxX: t.x,
+ maxY: t.y,
+ height: 0,
+ width: 0
+ }
+}
+
+// 获取扩展区域
+const getExpandedBBox = function(bbox, offset) {
+ if (bbox.width === 0 && bbox.height === 0) {
+ return bbox
+ }
+ return {
+ centerX: bbox.centerX,
+ centerY: bbox.centerY,
+ minX: bbox.minX - offset,
+ minY: bbox.minY - offset,
+ maxX: bbox.maxX + offset,
+ maxY: bbox.maxY + offset,
+ height: bbox.height + 2 * offset,
+ width: bbox.width + 2 * offset
+ }
+}
+
+// 获取扩展区域上的连接点
+const getExpandedPort = function(bbox, point) {
+ // 判断连接点在上下左右哪个区域,相应地给x或y加上或者减去offset
+ if (Math.abs(point.x - bbox.centerX) / bbox.width > Math.abs(point.y - bbox.centerY) / bbox.height) {
+ return {
+ x: point.x > bbox.centerX ? bbox.maxX : bbox.minX,
+ y: point.y
+ }
+ }
+ return {
+ x: point.x,
+ y: point.y > bbox.centerY ? bbox.maxY : bbox.minY
+ }
+}
+
+// 获取合法折点集合
+const getConnectablePoints = function(sBBox, tBBox, sPoint, tPoint) {
+ let lineBBox = getBBoxFromVertexes(sPoint, tPoint)
+ let outerBBox = combineBBoxes(sBBox, tBBox)
+ let sLineBBox = combineBBoxes(sBBox, lineBBox)
+ let tLineBBox = combineBBoxes(tBBox, lineBBox)
+ let points = [
+ ...vertexOfBBox(sLineBBox),
+ ...vertexOfBBox(tLineBBox),
+ ...vertexOfBBox(outerBBox)
+ ]
+ const centerPoint = { x: outerBBox.centerX, y: outerBBox.centerY }
+ let bboxes = [outerBBox, sLineBBox, tLineBBox, lineBBox]
+ bboxes.forEach(bbox => {
+ // 包含 bbox 延长线和线段的相交线
+ points = [
+ ...points,
+ ...crossPointsByLineAndBBox(bbox, centerPoint)
+ ]
+ })
+ points.push({ x: sPoint.x, y: tPoint.y })
+ points.push({ x: tPoint.x, y: sPoint.y })
+ return points
+}
+
+const getBBoxFromVertexes = function(sPoint, tPoint) {
+ const minX = Math.min(sPoint.x, tPoint.x)
+ const maxX = Math.max(sPoint.x, tPoint.x)
+ const minY = Math.min(sPoint.y, tPoint.y)
+ const maxY = Math.max(sPoint.y, tPoint.y)
+
+ return {
+ centerX: (minX + maxX) / 2,
+ centerY: (minY + maxY) / 2,
+ maxX: maxX,
+ maxY: maxY,
+ minX: minX,
+ minY: minY,
+ height: maxY - minY,
+ width: maxX - minX
+ }
+}
+
+const combineBBoxes = function(sBBox, tBBox) {
+ const minX = Math.min(sBBox.minX, tBBox.minX)
+ const minY = Math.min(sBBox.minY, tBBox.minY)
+ const maxX = Math.max(sBBox.maxX, tBBox.maxX)
+ const maxY = Math.max(sBBox.maxY, tBBox.maxY)
+
+ return {
+ centerX: (minX + maxX) / 2,
+ centerY: (minY + maxY) / 2,
+ minX: minX,
+ minY: minY,
+ maxX: maxX,
+ maxY: maxY,
+ height: maxY - minY,
+ width: maxX - minX
+ }
+}
+
+const vertexOfBBox = function(bbox) {
+ return [
+ { x: bbox.minX, y: bbox.minY },
+ { x: bbox.maxX, y: bbox.minY },
+ { x: bbox.maxX, y: bbox.maxY },
+ { x: bbox.minX, y: bbox.maxY }
+ ]
+}
+
+const crossPointsByLineAndBBox = function(bbox, centerPoint) {
+ let crossPoints = []
+ if (!(centerPoint.x < bbox.minX || centerPoint.x > bbox.maxX)) {
+ crossPoints = [
+ ...crossPoints,
+ { x: centerPoint.x, y: bbox.minY },
+ { x: centerPoint.x, y: bbox.maxY }
+ ]
+ }
+ if (!(centerPoint.y < bbox.minY || centerPoint.y > bbox.maxY)) {
+ crossPoints = [
+ ...crossPoints,
+ { x: bbox.minX, y: centerPoint.y },
+ { x: bbox.maxX, y: centerPoint.y }
+ ]
+ }
+
+ return crossPoints
+}
+
+// 过滤连接点
+const filterConnectablePoints = function(points, bbox) {
+ return points.filter(point => {
+ return point.x <= bbox.minX || point.x >= bbox.maxX || point.y <= bbox.minY || point.y >= bbox.maxY
+ })
+}
+
+const crossBBox = function(bboxes, p1, p2) {
+ for (let i = 0; i < bboxes.length; i++) {
+ const bbox = bboxes[i]
+ if (p1.x === p2.x && bbox.minX < p1.x && bbox.maxX > p1.x) {
+ if ((p1.y < bbox.maxY && p2.y >= bbox.maxY) || (p2.y < bbox.maxY && p1.y >= bbox.maxY)) {
+ return true
+ }
+ } else if (p1.y === p2.y && bbox.minY < p1.y && bbox.maxY > p1.y) {
+ if ((p1.x < bbox.maxX && p2.x >= bbox.maxX) || (p2.x < bbox.maxX && p1.x >= bbox.maxX)) {
+ return true
+ }
+ }
+ }
+ return false
+}
+
+const getCost = function(p1, p2) {
+ return Math.abs(p1.x - p2.x) + Math.abs(p1.y - p2.y)
+}
+
+// aStar 寻径
+const AStar = function(points, sPoint, tPoint, sBBox, tBBox) {
+ const openList = [sPoint]
+ const closeList = []
+ points.forEach(item => {
+ item.id = item.x + '-' + item.y
+ })
+ let tmpArr = []
+ points.forEach(item => {
+ if (!tmpArr.includes(target => target.id === item.id)) {
+ tmpArr.push(item)
+ }
+ })
+ points = [
+ ...tmpArr,
+ tPoint
+ ]
+ let endPoint
+ while (openList.length > 0) {
+ let minCostPoint
+ openList.forEach((p, i) => {
+ if (!p.parent) {
+ p.f = 0
+ }
+ if (!minCostPoint) {
+ minCostPoint = p
+ }
+ if (p.f < minCostPoint.f) {
+ minCostPoint = p
+ }
+ })
+ if (minCostPoint.x === tPoint.x && minCostPoint.y === tPoint.y) {
+ endPoint = minCostPoint
+ break
+ }
+ openList.splice(openList.findIndex(o => o.x === minCostPoint.x && o.y === minCostPoint.y), 1)
+ closeList.push(minCostPoint)
+ const neighbor = points.filter(p => {
+ return (p.x === minCostPoint.x || p.y === minCostPoint.y) &&
+ !(p.x === minCostPoint.x && p.y === minCostPoint.y) &&
+ !crossBBox([sBBox, tBBox], minCostPoint, p)
+ }
+ )
+ neighbor.forEach(p => {
+ const inOpen = openList.find(o => o.x === p.x && o.y === p.y)
+ const currentG = getCost(p, minCostPoint)
+ if (!closeList.find(o => o.x === p.x && o.y === p.y)) {
+ if (inOpen) {
+ if (p.g > currentG) {
+ p.parent = minCostPoint
+ p.g = currentG
+ p.f = p.g + p.h
+ }
+ } else {
+ p.parent = minCostPoint
+ p.g = currentG
+ let h = getCost(p, tPoint)
+ if (crossBBox([tBBox], p, tPoint)) {
+ // 如果穿过bbox则增加该点的预估代价为bbox周长的一半
+ h += (tBBox.width / 2 + tBBox.height / 2)
+ }
+ p.h = h
+ p.f = p.g + p.h
+ openList.push(p)
+ }
+ }
+ })
+ }
+ if (endPoint) {
+ const result = []
+ result.push({
+ x: endPoint.x,
+ y: endPoint.y
+ })
+ while (endPoint.parent) {
+ endPoint = endPoint.parent
+ result.push({
+ x: endPoint.x,
+ y: endPoint.y
+ })
+ }
+ return result.reverse()
+ }
+ return []
+}
diff --git a/packages-含有注释代码/cc-topology/src/edge/solidline.js b/packages-含有注释代码/cc-topology/src/edge/solidline.js
new file mode 100644
index 0000000..ed4bd1a
--- /dev/null
+++ b/packages-含有注释代码/cc-topology/src/edge/solidline.js
@@ -0,0 +1,53 @@
+/**
+ * @author: winyuan
+ * @data: 2019/10/22
+ * @repository: https://github.com/winyuan
+ * @description: 折线
+ */
+
+import base from './base'
+import theme from '../theme'
+
+/**
+ * fix: 继承 polyline 在 G6 3.x 里面有bug
+ * 现实现方法参考 https://g6.antv.vision/zh/examples/shape/customEdge#customPolyline
+ */
+export default {
+ name: 'solidline',
+ extendName: 'line',
+ options: {
+ ...base,
+ getPath(points) {
+ const startPoint = points[0]
+ const endPoint = points[1]
+ return [
+ ['M', startPoint.x, startPoint.y],
+ ['L', endPoint.x / 3 + 2 / 3 * startPoint.x, startPoint.y],
+ ['L', endPoint.x / 3 + 2 / 3 * startPoint.x, endPoint.y],
+ ['L', endPoint.x, endPoint.y]
+ ]
+ },
+ getShapeStyle(cfg) {
+ const { startPoint, endPoint } = cfg
+ const controlPoints = this.getControlPoints(cfg)
+ let points = [startPoint] // 添加起始点
+ // 添加控制点
+ if (controlPoints) {
+ points = points.concat(controlPoints)
+ }
+ // 添加结束点
+ points.push(endPoint)
+ const path = this.getPath(points)
+ const themeStyle = theme.darkStyle // todo...先使用默认主题,后期可能增加其它风格的主体
+ const style = {
+ stroke: '#BBB',
+ lineWidth: 1,
+ path,
+ startArrow: false,
+ endArrow: true,
+ ...themeStyle.edgeStyle.default
+ }
+ return style
+ }
+ }
+}
diff --git a/packages-含有注释代码/cc-topology/src/edge/top-table.js b/packages-含有注释代码/cc-topology/src/edge/top-table.js
new file mode 100644
index 0000000..2bad44a
--- /dev/null
+++ b/packages-含有注释代码/cc-topology/src/edge/top-table.js
@@ -0,0 +1,9 @@
+/**
+ * @author: clay
+ * @data: 2021/5/12 0:02
+ * @email: clay@hchyun.com
+ * @description: node
+ */
+export default {
+
+}
diff --git a/packages-含有注释代码/cc-topology/src/graph/index.js b/packages-含有注释代码/cc-topology/src/graph/index.js
new file mode 100644
index 0000000..78c29e8
--- /dev/null
+++ b/packages-含有注释代码/cc-topology/src/graph/index.js
@@ -0,0 +1,160 @@
+/**
+ * @author: winyuan
+ * @data: 2019/07/05
+ * @repository: https://github.com/winyuan
+ * @description: 图的布局方式/图的初始化
+ */
+
+import d3 from '../plugins/d3-installer'
+import theme from '../theme'
+
+/**
+ * 图的布局方式/图的初始化
+ * @type {{commonGraph: (function(*, *): G6.Graph)}}
+ */
+const initGraph = {
+ /**
+ * 一般布局
+ * @param G6
+ * @param options
+ * @returns {G6.Graph}
+ */
+ commonGraph: function(G6, options) {
+ let graphData = options.graphData
+ let themeStyle = theme.defaultStyle // todo...先使用默认主题,后期可能增加其它风格的主体
+ // 生成G6实例
+ let graph = new G6.Graph({
+ plugins: options.plugins,
+ container: options.container,
+ width: options.width,
+ height: options.height,
+ // layout: {
+ // type: 'random',
+ // width: options.width,
+ // height: options.height
+ // },
+ defaultNode: {
+ type: 'cc-rect',
+ labelCfg: {
+ position: 'bottom'
+ }
+ },
+ defaultEdge: {
+ type: 'cc-line',
+ labelCfg: {
+ position: 'center',
+ autoRotate: false
+ }
+ },
+ nodeStateStyles: themeStyle.nodeStyle,
+ // nodeStyle: {
+ // selected: {
+ // shadowColor: '#626262',
+ // shadowBlur: 8,
+ // shadowOffsetX: -1,
+ // shadowOffsetY: 3
+ // }
+ // },
+ edgeStateStyles: themeStyle.edgeStyle,
+ // edgeStyle: {
+ // default: {
+ // stroke: '#e2e2e2',
+ // lineWidth: 3,
+ // lineAppendWidth: 10
+ // },
+ // selected: {
+ // shadowColor: '#626262',
+ // shadowBlur: 3
+ // }
+ // },
+ modes: options.modes
+ })
+ // 将 read 方法分解成 data() 和 render 方法,便于整个生命周期的管理
+ graph.read(graphData)
+ graph.render()
+ // 返回G6实例
+ return graph
+ },
+ /**
+ * 力导布局
+ * @param G6
+ * @param options
+ * @returns {*}
+ */
+ forceLayoutGraph: function(resolve, G6, options) {
+ let graphData = options.graphData
+ let themeStyle = theme.defaultStyle // todo...先使用默认主题,后期可能增加其它风格的主体
+ // 生成G6实例
+ let graph = new G6.Graph({
+ container: options.container,
+ width: options.width,
+ height: options.height,
+ nodeStateStyles: themeStyle.nodeStyle,
+ edgeStateStyles: themeStyle.edgeStyle
+ })
+ // 初始化力导布局
+ let simulation = d3
+ .forceSimulation()
+ .force(
+ 'link',
+ d3
+ .forceLink()
+ .id(function(d) {
+ return d.id
+ })
+ .distance(linkDistance)
+ .strength(0.5)
+ )
+ .force('charge', d3.forceManyBody().strength(-500).distanceMax(500).distanceMin(100))
+ .force('center', d3.forceCenter(options.width / 2, options.height / 2))
+ // 定义节点数据
+ simulation.nodes(graphData.nodes).on('tick', ticked)
+ // 定义连线数据
+ let edges = []
+ for (let i = 0; i < graphData.edges.length; i++) {
+ edges.push({
+ id: graphData.edges[i].id,
+ source: graphData.edges[i].source,
+ target: graphData.edges[i].target
+ })
+ }
+ simulation.force('link').links(edges)
+ graph.data(graphData)
+ graph.render()
+
+ function linkDistance(d) {
+ return 150
+ }
+
+ function ticked() {
+ // protect: planA: 移除事件监听器 planB: 手动停止力模拟
+ if (graph.destroyed) {
+ // simulation.nodes(graphData.nodes).on('tick', null)
+ simulation.stop()
+ return
+ }
+ if (!graph.get('data')) {
+ // 若是第一次渲染,定义数据,渲染
+ graph.data(graphData)
+ graph.render()
+ } else {
+ // 后续渲染,直接刷新所有点和边的位置
+ graph.refreshPositions()
+ }
+ }
+
+ // 控制时间: 只布局10秒
+ let t = setTimeout(function() {
+ simulation.stop()
+ resolve(graph)
+ }, 10000)
+
+ // 判断force-layout结束
+ simulation.on('end', () => {
+ clearTimeout(t)
+ resolve(graph)
+ })
+ }
+}
+
+export default initGraph
diff --git a/packages-含有注释代码/cc-topology/src/node/base.js b/packages-含有注释代码/cc-topology/src/node/base.js
new file mode 100644
index 0000000..92212bb
--- /dev/null
+++ b/packages-含有注释代码/cc-topology/src/node/base.js
@@ -0,0 +1,22 @@
+/**
+ * @author: winyuan
+ * @data: 2019/07/05
+ * @repository: https://github.com/winyuan
+ * @description: 节点基础方法
+ */
+
+import utils from '../utils'
+
+export default {
+ setState(name, value, item) {
+ // 设置节点状态
+ utils.node.setState(name, value, item)
+ // 设置锚点状态
+ utils.anchor.setState(name, value, item)
+ },
+ // 绘制后附加锚点
+ afterDraw(cfg, group) {
+ // 绘制锚点
+ utils.anchor.draw(cfg, group)
+ }
+}
diff --git a/packages-含有注释代码/cc-topology/src/node/cc-image.js b/packages-含有注释代码/cc-topology/src/node/cc-image.js
new file mode 100644
index 0000000..371b9e8
--- /dev/null
+++ b/packages-含有注释代码/cc-topology/src/node/cc-image.js
@@ -0,0 +1,127 @@
+/**
+ * @author: winyuan
+ * @data: 2019/07/05
+ * @repository: https://github.com/winyuan
+ * @description: 图片节点
+ */
+
+import utils from '../utils'
+
+// 用来获取调用此js的vue组件实例(this)
+let vm = null
+
+const sendThis = (_this) => {
+ vm = _this
+}
+
+export default {
+ sendThis,
+ name: 'cc-image',
+ extendName: 'image',
+ options: {
+ setState(name, value, item) {
+ // 设置节点状态
+ utils.node.setState(name, value, item)
+ // 设置锚点状态
+ if (vm.graphMode === 'edit') {
+ utils.anchor.setState(name, value, item)
+ }
+ },
+ // 绘制后附加锚点
+ afterDraw(cfg, group) {
+ // 绘制锚点
+ if (vm.graphMode === 'edit') {
+ utils.anchor.draw(cfg, group)
+ }
+ },
+ // 设置告警状态
+ afterUpdate(cfg, node) {
+ const group = node.getContainer()
+ // 获取children
+ const halos = group.findAll(function(item) {
+ return item.attrs.name === 'halo'
+ })
+ // 告警
+ if (cfg.appState && cfg.appState.alert) {
+ if (halos.length > 0) {
+ return
+ }
+ let size = this.getSize(cfg) || [48, 48]
+ let r = size[0] / 2
+ let { id } = cfg
+ let halo1 = group.addShape('circle', {
+ id: id + '_halo_' + 1,
+ attrs: {
+ name: 'halo',
+ x: 0,
+ y: 0,
+ r: r,
+ fill: cfg.color || '#F56C6C',
+ opacity: 0.6
+ },
+ name: 'halo',
+ zIndex: -3
+ })
+ let halo2 = group.addShape('circle', {
+ id: id + '_halo_' + 2,
+ attrs: {
+ name: 'halo',
+ x: 0,
+ y: 0,
+ r: r,
+ fill: cfg.color || '#F56C6C', // 为了显示清晰,随意设置了颜色
+ opacity: 0.6
+ },
+ name: 'halo',
+ zIndex: -2
+ })
+ let halo3 = group.addShape('circle', {
+ id: id + '_halo_' + 3,
+ attrs: {
+ name: 'halo',
+ x: 0,
+ y: 0,
+ r: r,
+ fill: cfg.color || '#F56C6C',
+ opacity: 0.6
+ },
+ name: 'halo',
+ zIndex: -1
+ })
+ group.sort() // 排序,根据zIndex 排序
+ halo1.animate({ // 逐渐放大,并消失
+ r: r + 10,
+ opacity: 0.1,
+ }, {
+ repeat: true, // 循环
+ duration: 3000,
+ easing: 'easeCubic',
+ delay: 0 // 无延迟
+ })
+ halo2.animate({ // 逐渐放大,并消失
+ r: r + 10,
+ opacity: 0.1
+ }, {
+ repeat: true, // 循环
+ duration: 3000,
+ easing: 'easeCubic',
+ delay: 1000 // 1 秒延迟
+ })
+ halo3.animate({ // 逐渐放大,并消失
+ r: r + 10,
+ opacity: 0.1
+ }, {
+ repeat: true, // 循环
+ duration: 3000,
+ easing: 'easeCubic',
+ delay: 2000 // 2 秒延迟
+ })
+ } else {
+ halos.forEach(halo => {
+ // FIXME: G6 3.x在底层库遗留了bug,导致removeChild()方法报错,等待解决
+ group.removeChild(halo)
+ })
+ }
+ }
+ }
+}
diff --git a/packages-含有注释代码/cc-topology/src/node/cc-rect.js b/packages-含有注释代码/cc-topology/src/node/cc-rect.js
new file mode 100644
index 0000000..270ce18
--- /dev/null
+++ b/packages-含有注释代码/cc-topology/src/node/cc-rect.js
@@ -0,0 +1,31 @@
+/**
+ * @author: winyuan
+ * @data: 2019/07/05
+ * @repository: https://github.com/winyuan
+ * @description: 矩形节点
+ */
+
+import base from './base'
+import theme from '../theme'
+
+export default {
+ name: 'cc-rect',
+ extendName: 'rect',
+ options: {
+ ...base,
+ getShapeStyle(cfg) {
+ const size = this.getSize(cfg) || [48, 48]
+ const width = size[0]
+ const height = size[1]
+ const themeStyle = theme.defaultStyle // todo...先使用默认主题,后期可能增加其它风格的主体
+ const style = {
+ x: 0 - width / 2,
+ y: 0 - height / 2,
+ width: width,
+ height: height,
+ ...themeStyle.nodeStyle.default
+ }
+ return style
+ }
+ }
+}
diff --git a/packages-含有注释代码/cc-topology/src/node/index.js b/packages-含有注释代码/cc-topology/src/node/index.js
new file mode 100644
index 0000000..da8366f
--- /dev/null
+++ b/packages-含有注释代码/cc-topology/src/node/index.js
@@ -0,0 +1,23 @@
+/**
+ * @author: winyuan
+ * @data: 2019/07/05
+ * @repository: https://github.com/winyuan
+ * @description: register nodes
+ */
+
+import ccRect from './cc-rect'
+import ccImage from './cc-image'
+
+const obj = {
+ ccRect,
+ ccImage
+}
+
+export default {
+ obj,
+ register(G6) {
+ Object.values(obj).map(item => {
+ G6.registerNode(item.name, item.options, item.extendName)
+ })
+ }
+}
diff --git a/packages-含有注释代码/cc-topology/src/plugins/d3-installer.js b/packages-含有注释代码/cc-topology/src/plugins/d3-installer.js
new file mode 100644
index 0000000..a805344
--- /dev/null
+++ b/packages-含有注释代码/cc-topology/src/plugins/d3-installer.js
@@ -0,0 +1,10 @@
+/**
+ * @author: winyuan
+ * @data: 2019/07/05
+ * @repository: https://github.com/winyuan
+ * @description: install 3rd plugins
+ */
+
+import * as d3 from 'd3-force/dist/d3-force'
+
+export default d3
diff --git a/packages-含有注释代码/cc-topology/src/theme/dark-style.js b/packages-含有注释代码/cc-topology/src/theme/dark-style.js
new file mode 100644
index 0000000..aad3328
--- /dev/null
+++ b/packages-含有注释代码/cc-topology/src/theme/dark-style.js
@@ -0,0 +1,178 @@
+/**
+ * @author: winyuan
+ * @data: 2019/11/20
+ * @repository: https://github.com/winyuan
+ * @description: dark style
+ */
+
+export default {
+ // 节点样式
+ nodeStyle: {
+ default: {
+ stroke: '#CED4D9',
+ fill: 'transparent',
+ shadowOffsetX: 0,
+ shadowOffsetY: 4,
+ shadowBlur: 10,
+ shadowColor: 'rgba(13, 26, 38, 0.08)',
+ lineWidth: 1,
+ radius: 4,
+ strokeOpacity: 0.7
+ },
+ selected: {
+ shadowColor: '#ff240b',
+ shadowBlur: 4,
+ shadowOffsetX: 0,
+ shadowOffsetY: 0
+ // shadowColor: '#626262',
+ // shadowBlur: 8,
+ // shadowOffsetX: -1,
+ // shadowOffsetY: 3
+ },
+ unselected: {
+ shadowColor: ''
+ }
+ },
+ // 节点标签样式
+ nodeLabelCfg: {
+ positions: 'center',
+ style: {
+ fill: '#FFF'
+ }
+ },
+ // 连线样式
+ edgeStyle: {
+ default: {
+ stroke: '#53da3a',
+ lineWidth: 2,
+ strokeOpacity: 0.92,
+ lineAppendWidth: 10,
+ endArrow: true
+ },
+ active: {
+ shadowColor: 'red',
+ shadowBlur: 4,
+ shadowOffsetX: 0,
+ shadowOffsetY: 0
+ },
+ inactive: {
+ shadowColor: ''
+ },
+ selected: {
+ shadowColor: '#ff240b',
+ shadowBlur: 4,
+ shadowOffsetX: 0,
+ shadowOffsetY: 0
+ },
+ unselected: {
+ shadowColor: ''
+ }
+ },
+ // 锚点样式
+ anchorStyle: {
+ default: {
+ radius: 3,
+ symbol: 'circle',
+ fill: '#FFFFFF',
+ fillOpacity: 0,
+ stroke: '#1890FF',
+ strokeOpacity: 0,
+ cursor: 'crosshair'
+ },
+ hover: {
+ fillOpacity: 1,
+ strokeOpacity: 1
+ },
+ unhover: {
+ fillOpacity: 0,
+ strokeOpacity: 0
+ },
+ active: {
+ fillOpacity: 1,
+ strokeOpacity: 1
+ },
+ inactive: {
+ fillOpacity: 0,
+ strokeOpacity: 0
+ }
+ },
+ // 锚点背景样式
+ anchorBgStyle: {
+ default: {
+ radius: 10,
+ symbol: 'circle',
+ fill: '#1890FF',
+ fillOpacity: 0,
+ stroke: '#1890FF',
+ strokeOpacity: 0,
+ cursor: 'crosshair'
+ },
+ hover: {
+ fillOpacity: 1,
+ strokeOpacity: 1
+ },
+ unhover: {
+ fillOpacity: 0,
+ strokeOpacity: 0
+ },
+ active: {
+ fillOpacity: 0.3,
+ strokeOpacity: 0.5
+ },
+ inactive: {
+ fillOpacity: 0,
+ strokeOpacity: 0
+ }
+ },
+
+
+ nodeActivedOutterStyle: { lineWidth: 0 },
+ groupSelectedOutterStyle: { stroke: '#E0F0FF', lineWidth: 2 },
+ nodeSelectedOutterStyle: { stroke: '#E0F0FF', lineWidth: 2 },
+ edgeActivedStyle: { stroke: '#1890FF', strokeOpacity: .92 },
+ nodeActivedStyle: { fill: '#F3F9FF', stroke: '#1890FF' },
+ groupActivedStyle: { stroke: '#1890FF' },
+ edgeSelectedStyle: { lineWidth: 2, strokeOpacity: .92, stroke: '#A3B1BF' },
+ nodeSelectedStyle: { fill: '#F3F9FF', stroke: '#1890FF', fillOpacity: .4 },
+ groupSelectedStyle: { stroke: '#1890FF', fillOpacity: .92 },
+
+ groupBackgroundPadding: [40, 10, 10, 10],
+ groupLabelOffsetX: 10,
+ groupLabelOffsetY: 10,
+ edgeLabelStyle: { fill: '#666', textAlign: 'center', textBaseline: 'middle' },
+ edgeLabelRectPadding: 4,
+ edgeLabelRectStyle: { fill: 'white' },
+ nodeLabelStyle: { fill: '#666', textAlign: 'center', textBaseline: 'middle' },
+ groupStyle: { stroke: '#CED4D9', radius: 4 },
+ groupLabelStyle: { fill: '#666', textAlign: 'left', textBaseline: 'top' },
+ multiSelectRectStyle: { fill: '#1890FF', fillOpacity: .08, stroke: '#1890FF', opacity: .1 },
+ dragNodeHoverToGroupStyle: { stroke: '#1890FF', lineWidth: 2 },
+ dragNodeLeaveFromGroupStyle: { stroke: '#BAE7FF', lineWidth: 2 },
+ anchorPointStyle: { radius: 3.5, fill: '#fff', stroke: '#1890FF', lineAppendWidth: 12 },
+ anchorHotsoptStyle: { radius: 12, fill: '#1890FF', fillOpacity: .25 },
+ anchorHotsoptActivedStyle: { radius: 14 },
+ anchorPointHoverStyle: { radius: 4, fill: '#1890FF', fillOpacity: 1, stroke: '#1890FF' },
+ nodeControlPointStyle: { radius: 4, fill: '#fff', shadowBlur: 4, shadowColor: '#666' },
+ edgeControlPointStyle: { radius: 6, symbol: 'square', lineAppendWidth: 6, fillOpacity: 0, strokeOpacity: 0 },
+ nodeSelectedBoxStyle: { stroke: '#C2C2C2' },
+ cursor: {
+ panningCanvas: '-webkit-grabbing',
+ beforePanCanvas: '-webkit-grab',
+ hoverNode: 'move',
+ hoverEffectiveAnchor: 'crosshair',
+ hoverEdge: 'default',
+ hoverGroup: 'move',
+ hoverUnEffectiveAnchor: 'default',
+ hoverEdgeControllPoint: 'crosshair',
+ multiSelect: 'crosshair'
+ },
+ nodeDelegationStyle: {
+ stroke: '#1890FF',
+ fill: '#1890FF',
+ fillOpacity: .08,
+ lineDash: [4, 4],
+ radius: 4,
+ lineWidth: 1
+ },
+ edgeDelegationStyle: { stroke: '#1890FF', lineDash: [4, 4], lineWidth: 1 }
+}
diff --git a/packages-含有注释代码/cc-topology/src/theme/default-style.js b/packages-含有注释代码/cc-topology/src/theme/default-style.js
new file mode 100644
index 0000000..efbb257
--- /dev/null
+++ b/packages-含有注释代码/cc-topology/src/theme/default-style.js
@@ -0,0 +1,220 @@
+/**
+ * @author: winyuan
+ * @data: 2019/08/15
+ * @repository: https://github.com/winyuan
+ * @description: default style
+ */
+
+export default {
+ // 节点样式
+ nodeStyle: {
+ default: {
+ stroke: '#CED4D9',
+ fill: 'transparent',
+ shadowOffsetX: 0,
+ shadowOffsetY: 4,
+ shadowBlur: 10,
+ shadowColor: 'rgba(13, 26, 38, 0.08)',
+ lineWidth: 1,
+ radius: 4,
+ strokeOpacity: 0.7
+ },
+ selected: {
+ shadowColor: '#ff240b',
+ shadowBlur: 4,
+ shadowOffsetX: 0,
+ shadowOffsetY: 0
+ // shadowColor: '#626262',
+ // shadowBlur: 8,
+ // shadowOffsetX: -1,
+ // shadowOffsetY: 3
+ },
+ unselected: {
+ shadowColor: ''
+ }
+ },
+ // 节点标签样式
+ nodeLabelCfg: {
+ positions: 'center',
+ style: {
+ fill: '#000'
+ }
+ },
+ // 连线样式
+ edgeStyle: {
+ default: {
+ //修改连线颜色
+ stroke: 'red',
+ //todo 边的宽度
+ lineWidth: 2,
+ strokeOpacity: 0.92,
+ lineAppendWidth: 10,
+ endArrow: true,
+ startArrow: false,
+ //todo 添加虚线
+ // lineDash: [2, 2]
+ },
+ solidline: {
+ //实线
+ stroke: 'blue',
+ //todo 边的宽度
+ lineWidth: 1.5,
+ strokeOpacity: 0.92,
+ lineAppendWidth: 10,
+ endArrow: true,
+ startArrow: false,
+ },
+ dottedline: {
+ //虚线
+ stroke: 'blue',
+ //todo 边的宽度
+ lineWidth: 1.5,
+ strokeOpacity: 0.92,
+ lineAppendWidth: 10,
+ endArrow: true,
+ startArrow: false,
+ //todo 添加虚线
+ lineDash: [2, 2]
+ },
+ crudedottedline: {
+ //粗虚线
+ stroke: 'blue',
+ //todo 边的宽度
+ lineWidth: 3,
+ strokeOpacity: 0.92,
+ lineAppendWidth: 10,
+ endArrow: true,
+ startArrow: false,
+ //todo 添加虚线
+ lineDash: [2, 2]
+ },
+ active: {
+ shadowColor: 'red',
+ shadowBlur: 4,
+ shadowOffsetX: 0,
+ shadowOffsetY: 0
+ },
+ inactive: {
+ shadowColor: ''
+ },
+ selected: {
+ shadowColor: '#ff240b',
+ shadowBlur: 4,
+ shadowOffsetX: 0,
+ shadowOffsetY: 0
+ },
+ unselected: {
+ shadowColor: '',
+ shadowBlur: 0,
+ shadowOffsetX: 0,
+ shadowOffsetY: 0
+ }
+ },
+ // 锚点样式
+ anchorStyle: {
+ default: {
+ r: 3,
+ symbol: 'circle',
+ fill: '#FFFFFF',
+ fillOpacity: 0,
+ stroke: '#1890FF',
+ strokeOpacity: 0,
+ cursor: 'crosshair'
+ },
+ hover: {
+ fillOpacity: 1,
+ strokeOpacity: 1
+ },
+ unhover: {
+ fillOpacity: 0,
+ strokeOpacity: 0
+ },
+ active: {
+ fillOpacity: 1,
+ strokeOpacity: 1
+ },
+ inactive: {
+ fillOpacity: 0,
+ strokeOpacity: 0
+ }
+ },
+ // 锚点背景样式
+ anchorBgStyle: {
+ default: {
+ r: 10,
+ symbol: 'circle',
+ fill: '#1890FF',
+ fillOpacity: 0,
+ stroke: '#1890FF',
+ strokeOpacity: 0,
+ cursor: 'crosshair'
+ },
+ hover: {
+ fillOpacity: 1,
+ strokeOpacity: 1
+ },
+ unhover: {
+ fillOpacity: 0,
+ strokeOpacity: 0
+ },
+ active: {
+ fillOpacity: 0.3,
+ strokeOpacity: 0.5
+ },
+ inactive: {
+ fillOpacity: 0,
+ strokeOpacity: 0
+ }
+ },
+
+
+ nodeActivedOutterStyle: { lineWidth: 0 },
+ groupSelectedOutterStyle: { stroke: '#E0F0FF', lineWidth: 2 },
+ nodeSelectedOutterStyle: { stroke: '#E0F0FF', lineWidth: 2 },
+ edgeActivedStyle: { stroke: '#1890FF', strokeOpacity: .92 },
+ nodeActivedStyle: { fill: '#F3F9FF', stroke: '#1890FF' },
+ groupActivedStyle: { stroke: '#1890FF' },
+ edgeSelectedStyle: { lineWidth: 2, strokeOpacity: .92, stroke: '#A3B1BF' },
+ nodeSelectedStyle: { fill: '#F3F9FF', stroke: '#1890FF', fillOpacity: .4 },
+ groupSelectedStyle: { stroke: '#1890FF', fillOpacity: .92 },
+
+ groupBackgroundPadding: [40, 10, 10, 10],
+ groupLabelOffsetX: 10,
+ groupLabelOffsetY: 10,
+ edgeLabelStyle: { fill: '#666', textAlign: 'center', textBaseline: 'middle' },
+ edgeLabelRectPadding: 4,
+ edgeLabelRectStyle: { fill: 'white' },
+ nodeLabelStyle: { fill: '#666', textAlign: 'center', textBaseline: 'middle' },
+ groupStyle: { stroke: '#CED4D9', radius: 4 },
+ groupLabelStyle: { fill: '#666', textAlign: 'left', textBaseline: 'top' },
+ multiSelectRectStyle: { fill: '#1890FF', fillOpacity: .08, stroke: '#1890FF', opacity: .1 },
+ dragNodeHoverToGroupStyle: { stroke: '#1890FF', lineWidth: 2 },
+ dragNodeLeaveFromGroupStyle: { stroke: '#BAE7FF', lineWidth: 2 },
+ anchorPointStyle: { radius: 3.5, fill: '#fff', stroke: '#1890FF', lineAppendWidth: 12 },
+ anchorHotsoptStyle: { radius: 12, fill: '#1890FF', fillOpacity: .25 },
+ anchorHotsoptActivedStyle: { radius: 14 },
+ anchorPointHoverStyle: { radius: 4, fill: '#1890FF', fillOpacity: 1, stroke: '#1890FF' },
+ nodeControlPointStyle: { radius: 4, fill: '#fff', shadowBlur: 4, shadowColor: '#666' },
+ edgeControlPointStyle: { radius: 6, symbol: 'square', lineAppendWidth: 6, fillOpacity: 0, strokeOpacity: 0 },
+ nodeSelectedBoxStyle: { stroke: '#C2C2C2' },
+ cursor: {
+ panningCanvas: '-webkit-grabbing',
+ beforePanCanvas: '-webkit-grab',
+ hoverNode: 'move',
+ hoverEffectiveAnchor: 'crosshair',
+ hoverEdge: 'default',
+ hoverGroup: 'move',
+ hoverUnEffectiveAnchor: 'default',
+ hoverEdgeControllPoint: 'crosshair',
+ multiSelect: 'crosshair'
+ },
+ nodeDelegationStyle: {
+ stroke: '#1890FF',
+ fill: '#1890FF',
+ fillOpacity: .08,
+ lineDash: [4, 4],
+ radius: 4,
+ lineWidth: 1
+ },
+ edgeDelegationStyle: { stroke: '#1890FF', lineDash: [4, 4], lineWidth: 1 }
+}
diff --git a/packages-含有注释代码/cc-topology/src/theme/index.js b/packages-含有注释代码/cc-topology/src/theme/index.js
new file mode 100644
index 0000000..352020a
--- /dev/null
+++ b/packages-含有注释代码/cc-topology/src/theme/index.js
@@ -0,0 +1,16 @@
+/**
+ * @author: winyuan
+ * @data: 2019/08/15
+ * @repository: https://github.com/winyuan
+ * @description: 编辑器主题样式 - 节点、连线的预设样式
+ */
+
+import defaultStyle from './default-style'
+import darkStyle from './dark-style'
+import officeStyle from './office-style'
+
+export default {
+ defaultStyle,
+ darkStyle,
+ officeStyle
+}
diff --git a/packages-含有注释代码/cc-topology/src/theme/office-style.js b/packages-含有注释代码/cc-topology/src/theme/office-style.js
new file mode 100644
index 0000000..9c08efd
--- /dev/null
+++ b/packages-含有注释代码/cc-topology/src/theme/office-style.js
@@ -0,0 +1,178 @@
+/**
+ * @author: winyuan
+ * @data: 2019/11/21
+ * @repository: https://github.com/winyuan
+ * @description: office style
+ */
+
+export default {
+ // 节点样式
+ nodeStyle: {
+ default: {
+ stroke: '#CED4D9',
+ fill: '#FFFFFF',
+ shadowOffsetX: 0,
+ shadowOffsetY: 4,
+ shadowBlur: 10,
+ shadowColor: 'rgba(13, 26, 38, 0.08)',
+ lineWidth: 1,
+ radius: 4,
+ strokeOpacity: 0.7
+ },
+ selected: {
+ shadowColor: '#ff240b',
+ shadowBlur: 4,
+ shadowOffsetX: 0,
+ shadowOffsetY: 0
+ // shadowColor: '#626262',
+ // shadowBlur: 8,
+ // shadowOffsetX: -1,
+ // shadowOffsetY: 3
+ },
+ unselected: {
+ shadowColor: ''
+ }
+ },
+ // 节点标签样式
+ nodeLabelCfg: {
+ positions: 'center',
+ style: {
+ fill: '#000'
+ }
+ },
+ // 连线样式
+ edgeStyle: {
+ default: {
+ stroke: '#41c23a',
+ lineWidth: 2,
+ strokeOpacity: 0.92,
+ lineAppendWidth: 10,
+ endArrow: true
+ },
+ active: {
+ shadowColor: 'red',
+ shadowBlur: 4,
+ shadowOffsetX: 0,
+ shadowOffsetY: 0
+ },
+ inactive: {
+ shadowColor: ''
+ },
+ selected: {
+ shadowColor: '#ff240b',
+ shadowBlur: 4,
+ shadowOffsetX: 0,
+ shadowOffsetY: 0
+ },
+ unselected: {
+ shadowColor: ''
+ }
+ },
+ // 锚点样式
+ anchorStyle: {
+ default: {
+ radius: 3,
+ symbol: 'circle',
+ fill: '#FFFFFF',
+ fillOpacity: 0,
+ stroke: '#1890FF',
+ strokeOpacity: 0,
+ cursor: 'crosshair'
+ },
+ hover: {
+ fillOpacity: 1,
+ strokeOpacity: 1
+ },
+ unhover: {
+ fillOpacity: 0,
+ strokeOpacity: 0
+ },
+ active: {
+ fillOpacity: 1,
+ strokeOpacity: 1
+ },
+ inactive: {
+ fillOpacity: 0,
+ strokeOpacity: 0
+ }
+ },
+ // 锚点背景样式
+ anchorBgStyle: {
+ default: {
+ radius: 10,
+ symbol: 'circle',
+ fill: '#1890FF',
+ fillOpacity: 0,
+ stroke: '#1890FF',
+ strokeOpacity: 0,
+ cursor: 'crosshair'
+ },
+ hover: {
+ fillOpacity: 1,
+ strokeOpacity: 1
+ },
+ unhover: {
+ fillOpacity: 0,
+ strokeOpacity: 0
+ },
+ active: {
+ fillOpacity: 0.3,
+ strokeOpacity: 0.5
+ },
+ inactive: {
+ fillOpacity: 0,
+ strokeOpacity: 0
+ }
+ },
+
+
+ nodeActivedOutterStyle: { lineWidth: 0 },
+ groupSelectedOutterStyle: { stroke: '#E0F0FF', lineWidth: 2 },
+ nodeSelectedOutterStyle: { stroke: '#E0F0FF', lineWidth: 2 },
+ edgeActivedStyle: { stroke: '#1890FF', strokeOpacity: .92 },
+ nodeActivedStyle: { fill: '#F3F9FF', stroke: '#1890FF' },
+ groupActivedStyle: { stroke: '#1890FF' },
+ edgeSelectedStyle: { lineWidth: 2, strokeOpacity: .92, stroke: '#A3B1BF' },
+ nodeSelectedStyle: { fill: '#F3F9FF', stroke: '#1890FF', fillOpacity: .4 },
+ groupSelectedStyle: { stroke: '#1890FF', fillOpacity: .92 },
+
+ groupBackgroundPadding: [40, 10, 10, 10],
+ groupLabelOffsetX: 10,
+ groupLabelOffsetY: 10,
+ edgeLabelStyle: { fill: '#666', textAlign: 'center', textBaseline: 'middle' },
+ edgeLabelRectPadding: 4,
+ edgeLabelRectStyle: { fill: 'white' },
+ nodeLabelStyle: { fill: '#666', textAlign: 'center', textBaseline: 'middle' },
+ groupStyle: { stroke: '#CED4D9', radius: 4 },
+ groupLabelStyle: { fill: '#666', textAlign: 'left', textBaseline: 'top' },
+ multiSelectRectStyle: { fill: '#1890FF', fillOpacity: .08, stroke: '#1890FF', opacity: .1 },
+ dragNodeHoverToGroupStyle: { stroke: '#1890FF', lineWidth: 2 },
+ dragNodeLeaveFromGroupStyle: { stroke: '#BAE7FF', lineWidth: 2 },
+ anchorPointStyle: { radius: 3.5, fill: '#fff', stroke: '#1890FF', lineAppendWidth: 12 },
+ anchorHotsoptStyle: { radius: 12, fill: '#1890FF', fillOpacity: .25 },
+ anchorHotsoptActivedStyle: { radius: 14 },
+ anchorPointHoverStyle: { radius: 4, fill: '#1890FF', fillOpacity: 1, stroke: '#1890FF' },
+ nodeControlPointStyle: { radius: 4, fill: '#fff', shadowBlur: 4, shadowColor: '#666' },
+ edgeControlPointStyle: { radius: 6, symbol: 'square', lineAppendWidth: 6, fillOpacity: 0, strokeOpacity: 0 },
+ nodeSelectedBoxStyle: { stroke: '#C2C2C2' },
+ cursor: {
+ panningCanvas: '-webkit-grabbing',
+ beforePanCanvas: '-webkit-grab',
+ hoverNode: 'move',
+ hoverEffectiveAnchor: 'crosshair',
+ hoverEdge: 'default',
+ hoverGroup: 'move',
+ hoverUnEffectiveAnchor: 'default',
+ hoverEdgeControllPoint: 'crosshair',
+ multiSelect: 'crosshair'
+ },
+ nodeDelegationStyle: {
+ stroke: '#1890FF',
+ fill: '#1890FF',
+ fillOpacity: .08,
+ lineDash: [4, 4],
+ radius: 4,
+ lineWidth: 1
+ },
+ edgeDelegationStyle: { stroke: '#1890FF', lineDash: [4, 4], lineWidth: 1 }
+}
diff --git a/packages-含有注释代码/cc-topology/src/toolbar-edit.vue b/packages-含有注释代码/cc-topology/src/toolbar-edit.vue
new file mode 100644
index 0000000..1abcbe2
--- /dev/null
+++ b/packages-含有注释代码/cc-topology/src/toolbar-edit.vue
@@ -0,0 +1,207 @@
+
+
+
+
+
+
+
diff --git a/packages-含有注释代码/cc-topology/src/utils/anchor/draw.js b/packages-含有注释代码/cc-topology/src/utils/anchor/draw.js
new file mode 100644
index 0000000..45d167d
--- /dev/null
+++ b/packages-含有注释代码/cc-topology/src/utils/anchor/draw.js
@@ -0,0 +1,60 @@
+/**
+ * @author: winyuan
+ * @data: 2019/08/15
+ * @repository: https://github.com/winyuan
+ * @description: draw anchor
+ */
+
+import theme from '../../theme'
+
+export default function(cfg, group) {
+ const themeStyle = theme.defaultStyle // todo...先使用默认主题,后期可能增加其它风格的主体
+ let { anchorPoints, width, height, id } = cfg
+ if (anchorPoints && anchorPoints.length) {
+ for (let i = 0, len = anchorPoints.length; i < len; i++) {
+ let [x, y] = anchorPoints[i]
+ // 计算Marker中心点坐标
+ let originX = -width / 2
+ let originY = -height / 2
+ let anchorX = x * width + originX
+ let anchorY = y * height + originY
+ // 添加锚点背景
+ let anchorBgShape = group.addShape('marker', {
+ id: id + '_anchor_bg_' + i,
+ attrs: {
+ name: 'anchorBg',
+ x: anchorX,
+ y: anchorY,
+ // 锚点默认样式
+ ...themeStyle.anchorBgStyle.default
+ },
+ draggable: false,
+ name: 'markerBg-shape'
+ })
+ // 添加锚点Marker形状
+ let anchorShape = group.addShape('marker', {
+ id: id + '_anchor_' + i,
+ attrs: {
+ name: 'anchor',
+ x: anchorX,
+ y: anchorY,
+ // 锚点默认样式
+ ...themeStyle.anchorStyle.default
+ },
+ draggable: false,
+ name: 'marker-shape'
+ })
+
+ anchorShape.on('mouseenter', function() {
+ anchorBgShape.attr({
+ ...themeStyle.anchorBgStyle.active
+ })
+ })
+ anchorShape.on('mouseleave', function() {
+ anchorBgShape.attr({
+ ...themeStyle.anchorBgStyle.inactive
+ })
+ })
+ }
+ }
+}
diff --git a/packages-含有注释代码/cc-topology/src/utils/anchor/index.js b/packages-含有注释代码/cc-topology/src/utils/anchor/index.js
new file mode 100644
index 0000000..6f8f2a2
--- /dev/null
+++ b/packages-含有注释代码/cc-topology/src/utils/anchor/index.js
@@ -0,0 +1,16 @@
+/**
+ * @author: winyuan
+ * @data: 2019/08/15
+ * @repository: https://github.com/winyuan
+ * @description: anchor
+ */
+
+import draw from './draw'
+import setState from './set-state'
+import update from './update'
+
+export default {
+ draw,
+ setState,
+ update
+}
diff --git a/packages-含有注释代码/cc-topology/src/utils/anchor/set-state.js b/packages-含有注释代码/cc-topology/src/utils/anchor/set-state.js
new file mode 100644
index 0000000..6e481d7
--- /dev/null
+++ b/packages-含有注释代码/cc-topology/src/utils/anchor/set-state.js
@@ -0,0 +1,27 @@
+/**
+ * @author: winyuan
+ * @data: 2019/08/15
+ * @repository: https://github.com/winyuan
+ * @description: set anchor state
+ */
+
+import theme from '../../theme'
+
+export default function(name, value, item) {
+ const themeStyle = theme.defaultStyle // todo...先使用默认主题,后期可能增加其它风格的主体
+ if (name === 'hover') {
+ let group = item.getContainer()
+ let children = group.get('children')
+ for (let i = 0, len = children.length; i < len; i++) {
+ let child = children[i]
+ // 处理锚点状态
+ if (child.attrs.name === 'anchor') {
+ if (value) {
+ child.attr(themeStyle.anchorStyle.hover)
+ } else {
+ child.attr(themeStyle.anchorStyle.unhover)
+ }
+ }
+ }
+ }
+}
diff --git a/packages-含有注释代码/cc-topology/src/utils/anchor/update.js b/packages-含有注释代码/cc-topology/src/utils/anchor/update.js
new file mode 100644
index 0000000..0f43473
--- /dev/null
+++ b/packages-含有注释代码/cc-topology/src/utils/anchor/update.js
@@ -0,0 +1,32 @@
+/**
+ * @author: winyuan
+ * @data: 2019/08/15
+ * @repository: https://github.com/winyuan
+ * @description: update anchor
+ */
+
+export default function(cfg, group) {
+ let { anchorPoints, width, height, id } = cfg
+ if (anchorPoints && anchorPoints.length) {
+ for (let i = 0, len = anchorPoints.length; i < len; i++) {
+ let [x, y] = anchorPoints[i]
+ // 计算Marker中心点坐标
+ let originX = -width / 2
+ let originY = -height / 2
+ let anchorX = x * width + originX
+ let anchorY = y * height + originY
+ // 锚点背景
+ let anchorBgShape = group.findById(id + '_anchor_bg_' + i)
+ // 锚点
+ let anchorShape = group.findById(id + '_anchor_' + i)
+ anchorBgShape.attr({
+ x: anchorX,
+ y: anchorY
+ })
+ anchorShape.attr({
+ x: anchorX,
+ y: anchorY
+ })
+ }
+ }
+}
diff --git a/packages-含有注释代码/cc-topology/src/utils/edge/index.js b/packages-含有注释代码/cc-topology/src/utils/edge/index.js
new file mode 100644
index 0000000..690f906
--- /dev/null
+++ b/packages-含有注释代码/cc-topology/src/utils/edge/index.js
@@ -0,0 +1,12 @@
+/**
+ * @author: winyuan
+ * @data: 2019/08/15
+ * @repository: https://github.com/winyuan
+ * @description: edge
+ */
+
+import setState from './set-state'
+
+export default {
+ setState
+}
diff --git a/packages-含有注释代码/cc-topology/src/utils/edge/set-state.js b/packages-含有注释代码/cc-topology/src/utils/edge/set-state.js
new file mode 100644
index 0000000..3bb60b7
--- /dev/null
+++ b/packages-含有注释代码/cc-topology/src/utils/edge/set-state.js
@@ -0,0 +1,27 @@
+/**
+ * @author: winyuan
+ * @data: 2019/08/15
+ * @repository: https://github.com/winyuan
+ * @description: set edge state
+ */
+
+import theme from '../../theme'
+
+export default function(name, value, item) {
+ const group = item.getContainer()
+ const shape = group.get('children')[0] // 顺序根据 draw 时确定
+ const themeStyle = theme.defaultStyle // todo...先使用默认主题,后期可能增加其它风格的主体
+ if (name === 'active') {
+ if (value) {
+ shape.attr(themeStyle.edgeStyle.active)
+ } else {
+ shape.attr(themeStyle.edgeStyle.inactive)
+ }
+ } else if (name === 'selected') {
+ if (value) {
+ shape.attr(themeStyle.edgeStyle.selected)
+ } else {
+ shape.attr(themeStyle.edgeStyle.unselected)
+ }
+ }
+}
diff --git a/packages-含有注释代码/cc-topology/src/utils/index.js b/packages-含有注释代码/cc-topology/src/utils/index.js
new file mode 100644
index 0000000..36fb8f1
--- /dev/null
+++ b/packages-含有注释代码/cc-topology/src/utils/index.js
@@ -0,0 +1,65 @@
+/**
+ * @author: winyuan
+ * @data: 2019/08/15
+ * @repository: https://github.com/winyuan
+ * @description: graph utils
+ */
+
+import node from './node'
+import anchor from './anchor'
+import edge from './edge'
+
+/**
+ * 比较两个对象的内容是否相同(两个对象的键值都相同)
+ * @param obj1
+ * @param obj2
+ * @returns {*}
+ */
+const isObjectValueEqual = function(obj1, obj2) {
+ let o1 = obj1 instanceof Object
+ let o2 = obj2 instanceof Object
+ // 不是对象的情况
+ if (!o1 || !o2) {
+ return obj1 === obj2
+ }
+ // 对象的属性(key值)个数不相等
+ if (Object.keys(obj1).length !== Object.keys(obj2).length) {
+ return false
+ }
+ // 判断每个属性(如果属性值也是对象则需要递归)
+ for (let attr in obj1) {
+ let t1 = obj1[attr] instanceof Object
+ let t2 = obj2[attr] instanceof Object
+ if (t1 && t2) {
+ return isObjectValueEqual(obj1[attr], obj2[attr])
+ } else if (obj1[attr] !== obj2[attr]) {
+ return false
+ }
+ }
+ return true
+}
+
+
+/**
+ * 生成uuid算法,碰撞率低于1/2^^122
+ * @returns {string}
+ */
+const generateUUID = function() {
+ let d = new Date().getTime()
+ // x 是 0-9 或 a-f 范围内的一个32位十六进制数
+ let uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
+ let r = (d + Math.random() * 16) % 16 | 0
+ d = Math.floor(d / 16)
+ return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16)
+ })
+ return uuid
+}
+
+export default {
+ node,
+ anchor,
+ edge,
+ // 通用工具类函数
+ isObjectValueEqual,
+ generateUUID
+}
diff --git a/packages-含有注释代码/cc-topology/src/utils/node/index.js b/packages-含有注释代码/cc-topology/src/utils/node/index.js
new file mode 100644
index 0000000..95fa208
--- /dev/null
+++ b/packages-含有注释代码/cc-topology/src/utils/node/index.js
@@ -0,0 +1,12 @@
+/**
+ * @author: winyuan
+ * @data: 2019/08/15
+ * @repository: https://github.com/winyuan
+ * @description: node
+ */
+
+import setState from './set-state'
+
+export default {
+ setState
+}
diff --git a/packages-含有注释代码/cc-topology/src/utils/node/set-state.js b/packages-含有注释代码/cc-topology/src/utils/node/set-state.js
new file mode 100644
index 0000000..4503f47
--- /dev/null
+++ b/packages-含有注释代码/cc-topology/src/utils/node/set-state.js
@@ -0,0 +1,27 @@
+/**
+ * @author: winyuan
+ * @data: 2019/08/15
+ * @repository: https://github.com/winyuan
+ * @description: set node state
+ */
+
+import theme from '../../theme'
+
+export default function(name, value, item) {
+ const group = item.getContainer()
+ const shape = group.get('children')[0] // 顺序根据 draw 时确定
+ const themeStyle = theme.defaultStyle // todo...先使用默认主题,后期可能增加其它风格的主体
+ if (name === 'active') {
+ if (value) {
+ shape.attr(themeStyle.nodeStyle.active)
+ } else {
+ shape.attr(themeStyle.nodeStyle.inactive)
+ }
+ } else if (name === 'selected') {
+ if (value) {
+ shape.attr(themeStyle.nodeStyle.selected)
+ } else {
+ shape.attr(themeStyle.nodeStyle.default)
+ }
+ }
+}
diff --git a/packages-含有注释代码/index.js b/packages-含有注释代码/index.js
new file mode 100644
index 0000000..c0c4ce4
--- /dev/null
+++ b/packages-含有注释代码/index.js
@@ -0,0 +1,40 @@
+/**
+ * @author: winyuan
+ * @data: 2019/08/20
+ * @repository: https://github.com/winyuan
+ * @description: 整合所有的组件,对外导出,即一个完整的组件库
+ */
+
+import CCTopology from './cc-topology'
+
+// 存储组件列表
+const components = [
+ CCTopology
+]
+
+// 定义 install 方法,接收 Vue 作为参数。如果使用 use 注册插件,则所有的组件都将被注册
+const install = function(Vue) {
+ // 判断是否安装
+ if (install.installed) return
+ // 遍历注册全局组件
+ console.info('install----CCEditor: All----')
+ components.map(component => Vue.component(component.name, component))
+}
+
+// 判断是否是直接引入文件
+if (typeof window !== 'undefined' && window.Vue) {
+ install(window.Vue)
+}
+
+export default {
+ // 导出的对象必须具有 install,才能被 Vue.use() 方法安装
+ install,
+ // 以下是具体的组件列表
+ CCTopology
+}
+
+export {
+ install,
+ // 以下是具体的组件列表
+ CCTopology
+}
diff --git a/packages-含有注释代码/top/Review.vue b/packages-含有注释代码/top/Review.vue
new file mode 100644
index 0000000..e4412dd
--- /dev/null
+++ b/packages-含有注释代码/top/Review.vue
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
diff --git a/packages-含有注释代码/top/ViewTop.vue b/packages-含有注释代码/top/ViewTop.vue
new file mode 100644
index 0000000..5378759
--- /dev/null
+++ b/packages-含有注释代码/top/ViewTop.vue
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
diff --git a/packages-含有注释代码/top/index.vue b/packages-含有注释代码/top/index.vue
new file mode 100644
index 0000000..4b4e2cc
--- /dev/null
+++ b/packages-含有注释代码/top/index.vue
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
diff --git a/packages-含有注释代码/top/topology.vue b/packages-含有注释代码/top/topology.vue
new file mode 100644
index 0000000..0f66c1b
--- /dev/null
+++ b/packages-含有注释代码/top/topology.vue
@@ -0,0 +1,176 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages-含有注释代码/topology.vue b/packages-含有注释代码/topology.vue
new file mode 100644
index 0000000..506127e
--- /dev/null
+++ b/packages-含有注释代码/topology.vue
@@ -0,0 +1,175 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/postcss.config.js b/postcss.config.js
new file mode 100644
index 0000000..5bfb8f6
--- /dev/null
+++ b/postcss.config.js
@@ -0,0 +1,5 @@
+module.exports = {
+ plugins: {
+ autoprefixer: {}
+ }
+};
diff --git a/prettier.config.js b/prettier.config.js
new file mode 100644
index 0000000..d9013df
--- /dev/null
+++ b/prettier.config.js
@@ -0,0 +1,9 @@
+// prettier.config.js or .prettierrc.js 返回对象
+module.exports = {
+ eslintIntegration: true, // 开启 eslint 支持
+ singleQuote: true, // 使用单引号
+ tabWidth: 2, // 一个tab代表几个空格数,默认为80
+ useTabs: false, // 是否使用tab进行缩进,默认为false,表示用空格进行缩减
+ semi: false, // 行位是否使用分号,默认为true
+ bracketSpacing: true //对象大括号直接是否有空格,默认为true,效果:{ foo: bar }
+}
diff --git a/public/favicon.ico b/public/favicon.ico
new file mode 100644
index 0000000..28d098d
Binary files /dev/null and b/public/favicon.ico differ
diff --git a/public/index.html b/public/index.html
new file mode 100644
index 0000000..918dee7
--- /dev/null
+++ b/public/index.html
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+ ClayTop
+
+
+
+
+
+
+
diff --git a/vue.config.js b/vue.config.js
new file mode 100644
index 0000000..816bab7
--- /dev/null
+++ b/vue.config.js
@@ -0,0 +1,54 @@
+let path = require('path')
+
+function resolve(dir) {
+ return path.join(__dirname, dir)
+}
+
+module.exports = {
+ // 修改src为examples
+ pages: {
+ index: {
+ entry: 'examples/main.js',
+ template: 'public/index.html',
+ filename: 'index.html'
+ }
+ },
+ // 强制内联CSS
+ // 默认true: 使用CSS分离插件 ExtractTextPlugin,采用独立样式文件载入,不采用