├── .browserslistrc ├── public ├── favicon.ico └── index.html ├── src ├── assets │ ├── item.jpg │ ├── logo.png │ └── logo.svg ├── store │ └── index.js ├── main.js ├── router │ └── index.js ├── App.vue └── views │ ├── About.vue │ └── Home.vue ├── babel.config.js ├── server ├── views │ ├── index.pug │ ├── error.pug │ └── layout.pug ├── public │ └── stylesheets │ │ └── style.css ├── models │ ├── db.js │ ├── goods.js │ └── users.js ├── package.json ├── routes │ ├── goods.js │ └── users.js ├── app.js ├── bin │ └── www ├── README.md ├── resourse │ ├── goods-net.json │ └── dumall-users.json └── yarn.lock ├── .gitignore ├── .eslintrc.js ├── index.html ├── package.json ├── README.en.md ├── mongo └── readme.md └── README.md /.browserslistrc: -------------------------------------------------------------------------------- 1 | > 1% 2 | last 2 versions 3 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuhuan1/vue-shop/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /src/assets/item.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuhuan1/vue-shop/HEAD/src/assets/item.jpg -------------------------------------------------------------------------------- /src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuhuan1/vue-shop/HEAD/src/assets/logo.png -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@vue/cli-plugin-babel/preset' 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /server/views/index.pug: -------------------------------------------------------------------------------- 1 | extends layout 2 | 3 | block content 4 | h1= title 5 | p Welcome to #{title} 6 | -------------------------------------------------------------------------------- /server/views/error.pug: -------------------------------------------------------------------------------- 1 | extends layout 2 | 3 | block content 4 | h1= message 5 | h2= error.status 6 | pre #{error.stack} 7 | -------------------------------------------------------------------------------- /server/public/stylesheets/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding: 50px; 3 | font: 14px "Lucida Grande", Helvetica, Arial, sans-serif; 4 | } 5 | 6 | a { 7 | color: #00B7FF; 8 | } 9 | -------------------------------------------------------------------------------- /server/views/layout.pug: -------------------------------------------------------------------------------- 1 | doctype html 2 | html 3 | head 4 | title= title 5 | link(rel='stylesheet', href='/stylesheets/style.css') 6 | body 7 | block content 8 | -------------------------------------------------------------------------------- /server/models/db.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose'); 2 | mongoose.connect( 'mongodb://127.0.0.1:27017/shop', {useNewUrlParser: true},(err)=>{ 3 | if(err) throw err; 4 | console.log("database连接成功") 5 | }); 6 | module.exports = mongoose; -------------------------------------------------------------------------------- /src/store/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Vuex from 'vuex' 3 | 4 | Vue.use(Vuex) 5 | 6 | export default new Vuex.Store({ 7 | state: { 8 | }, 9 | mutations: { 10 | }, 11 | actions: { 12 | }, 13 | modules: { 14 | } 15 | }) 16 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /dist 4 | 5 | # local env files 6 | .env.local 7 | .env.*.local 8 | 9 | # Log files 10 | npm-debug.log* 11 | yarn-debug.log* 12 | yarn-error.log* 13 | 14 | # Editor directories and files 15 | .idea 16 | .vscode 17 | *.suo 18 | *.ntvs* 19 | *.njsproj 20 | *.sln 21 | *.sw? 22 | -------------------------------------------------------------------------------- /server/models/goods.js: -------------------------------------------------------------------------------- 1 | var mongoose = require('./db'); 2 | var GoodsSchema = new mongoose.Schema({ 3 | productId:String, 4 | productName:String, 5 | salePrice:Number, 6 | productImage:String, 7 | productUrl:String 8 | }) 9 | var Goods = mongoose.model('Goods',GoodsSchema,'goods'); 10 | module.exports = Goods; -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { 4 | node: true 5 | }, 6 | 'extends': [ 7 | 'plugin:vue/essential', 8 | 'eslint:recommended' 9 | ], 10 | rules: { 11 | 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', 12 | 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off' 13 | }, 14 | parserOptions: { 15 | parser: 'babel-eslint' 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 15 | 16 | -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import App from './App.vue' 3 | import router from './router' 4 | import store from './store' 5 | import axios from 'axios' 6 | import ElementUI from 'element-ui'; 7 | import 'element-ui/lib/theme-chalk/index.css'; 8 | 9 | Vue.config.productionTip = false 10 | axios.defaults.withCredentials=true //允许http请求携带cookie 11 | axios.defaults.crossDomain=true; //允许跨域访问cookie 12 | axios.defaults.baseURL="http://192.168.14.63:3000" 13 | Vue.prototype.$http=axios 14 | Vue.use(ElementUI); 15 | new Vue({ 16 | router, 17 | store, 18 | render: h => h(App) 19 | }).$mount('#app') 20 | -------------------------------------------------------------------------------- /server/models/users.js: -------------------------------------------------------------------------------- 1 | var mongoose = require('./db'); 2 | var UserSchema = new mongoose.Schema({ 3 | userId: String, 4 | userName: String, 5 | userPwd: String, 6 | orderList: Array, 7 | cartList: Array, 8 | addressList: Array, 9 | cartList: [ 10 | { 11 | productImage: String, 12 | salePrice:Number, 13 | productName:String, 14 | productId:String, 15 | productNum:Number, 16 | check:{ 17 | type:Boolean, 18 | default:true 19 | } 20 | } 21 | ] 22 | }) 23 | var Users = mongoose.model('Users', UserSchema, 'users'); 24 | module.exports = Users; -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | vue-shop 10 | 11 | 12 | 15 |
16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/router/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import VueRouter from 'vue-router' 3 | import Home from '../views/Home.vue' 4 | 5 | Vue.use(VueRouter) 6 | 7 | const routes = [ 8 | { 9 | path: '/', 10 | name: 'home', 11 | component: Home 12 | }, 13 | { 14 | path: '/about', 15 | name: 'about', 16 | // route level code-splitting 17 | // this generates a separate chunk (about.[hash].js) for this route 18 | // which is lazy-loaded when the route is visited. 19 | component: () => import(/* webpackChunkName: "about" */ '../views/About.vue') 20 | } 21 | ] 22 | 23 | const router = new VueRouter({ 24 | mode: 'history', 25 | base: process.env.BASE_URL, 26 | routes 27 | }) 28 | 29 | export default router 30 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 34 | -------------------------------------------------------------------------------- /server/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "server", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "start": "node bin/www", 7 | "dev": "./node_modules/.bin/nodemon bin/www", 8 | "prd": "pm2 start bin/www", 9 | "test": "echo \"Error: no test specified\" && exit 1" 10 | }, 11 | "dependencies": { 12 | "art-template": "^4.13.2", 13 | "debug": "^4.1.1", 14 | "koa": "^2.7.0", 15 | "koa-art-template": "^1.1.1", 16 | "koa-bodyparser": "^4.2.1", 17 | "koa-convert": "^1.2.0", 18 | "koa-json": "^2.0.2", 19 | "koa-logger": "^3.2.0", 20 | "koa-onerror": "^4.1.0", 21 | "koa-router": "^7.4.0", 22 | "koa-static": "^5.0.0", 23 | "koa-views": "^6.2.0", 24 | "koa2-cors": "^2.0.6", 25 | "mongoose": "^5.7.13", 26 | "pug": "^2.0.3" 27 | }, 28 | "devDependencies": { 29 | "nodemon": "^1.19.1" 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-shop", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "serve": "vue-cli-service serve", 7 | "build": "vue-cli-service build", 8 | "lint": "vue-cli-service lint" 9 | }, 10 | "dependencies": { 11 | "axios": "^0.19.0", 12 | "babel-plugin-component": "^1.1.1", 13 | "core-js": "^3.4.3", 14 | "element-ui": "^2.13.0", 15 | "koa": "^2.11.0", 16 | "koa2-cors": "^2.0.6", 17 | "vue": "^2.6.10", 18 | "vue-router": "^3.1.3", 19 | "vuex": "^3.1.2" 20 | }, 21 | "devDependencies": { 22 | "@vue/cli-plugin-babel": "^4.1.0", 23 | "@vue/cli-plugin-eslint": "^4.1.0", 24 | "@vue/cli-plugin-router": "^4.1.0", 25 | "@vue/cli-plugin-vuex": "^4.1.0", 26 | "@vue/cli-service": "^4.1.0", 27 | "babel-eslint": "^10.0.3", 28 | "eslint": "^5.16.0", 29 | "eslint-plugin-vue": "^5.0.0", 30 | "sass": "^1.23.7", 31 | "sass-loader": "^8.0.0", 32 | "vue-template-compiler": "^2.6.10" 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /server/routes/goods.js: -------------------------------------------------------------------------------- 1 | const router = require('koa-router')() 2 | const GoodsModel=require('../models/goods') 3 | router.get('/goods/list', async (ctx) => { 4 | // ctx.cookies.set("name","zhangsan",{ 5 | // maxAge:1000*30 //cookie的有效时长 6 | // }) 7 | console.log(ctx.query) 8 | var {start,limit}=ctx.query 9 | var total=await GoodsModel.find({}).count() 10 | var data=await GoodsModel.find({}).skip(Number(start)).limit(Number(limit)) 11 | ctx.body={ 12 | code:200, 13 | msg:"首页数据请求成功", 14 | result:data, 15 | total:total 16 | } 17 | }) 18 | router.get("/goods/price",async ctx=>{ 19 | console.log(ctx.query) 20 | var {gt,lt}=ctx.query; 21 | var data=await GoodsModel.find({salePrice:{$gt:gt,$lt:lt}}) 22 | if(data.length){ 23 | ctx.body={ 24 | code:200, 25 | msg:"数据请求成功", 26 | result:data, 27 | total:data.length 28 | } 29 | }else{ 30 | ctx.body={ 31 | code:1001, 32 | msg:"没有数据" 33 | } 34 | } 35 | }) 36 | module.exports = router 37 | -------------------------------------------------------------------------------- /README.en.md: -------------------------------------------------------------------------------- 1 | # vue-shop 2 | 3 | #### Description 4 | {**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**} 5 | 6 | #### Software Architecture 7 | Software architecture description 8 | 9 | #### Installation 10 | 11 | 1. xxxx 12 | 2. xxxx 13 | 3. xxxx 14 | 15 | #### Instructions 16 | 17 | 1. xxxx 18 | 2. xxxx 19 | 3. xxxx 20 | 21 | #### Contribution 22 | 23 | 1. Fork the repository 24 | 2. Create Feat_xxx branch 25 | 3. Commit your code 26 | 4. Create Pull Request 27 | 28 | 29 | #### Gitee Feature 30 | 31 | 1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md 32 | 2. Gitee blog [blog.gitee.com](https://blog.gitee.com) 33 | 3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore) 34 | 4. The most valuable open source project [GVP](https://gitee.com/gvp) 35 | 5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help) 36 | 6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) 37 | -------------------------------------------------------------------------------- /mongo/readme.md: -------------------------------------------------------------------------------- 1 | ``` 2 | show dbs //显示所有的数据库 3 | use shop //切换shop这个库 4 | show collections //看库中有几张表 5 | 6 | ``` 7 | 8 | ``` 9 | db.goods.find({}) 10 | //只查第一条和第二条 skip limit 11 | //skip是下标 limit查询多少条 12 | db.goods.find({}).skip(0).limit(2) 13 | ``` 14 | 15 | ``` 16 | //升序sort({condition:1}) 降序sort({condition:-1}) 17 | ``` 18 | 19 | ```js 20 | //根据价格大小排序 升序 21 | db.goods.find({}).sort({price:1}) 22 | //根据价格大小排序 降序 23 | db.goods.find({}).sort({price:-1}) 24 | ``` 25 | 26 | ``` 27 | //> 大于某个数 28 | //选择price大于1000的商品 29 | db.goods.find({condition:{$gt:1000}}) 30 | //$lt 小于某个数 31 | //选择price小于1000的商品 32 | db.goods.find({condition:{$lt:1000}}) 33 | //选择price大于900,小于1100的商品 34 | db.goods.find({price:{$gt:900,$lt:1100}}) 35 | ``` 36 | 37 | ``` 38 | //count()统计数据 39 | db.goods.find({}).count(); 40 | ``` 41 | 42 | ## 二、内嵌数组的添加和删除,更新 43 | 44 | ``` 45 | //carts 46 | { 47 | userId:1001, 48 | cartList:[ 49 | {id:100,name:"book"} 50 | ] 51 | 52 | } 53 | ``` 54 | 55 | ``` 56 | //$push 向carts这张表中的cartList添加一条数据 57 | db.carts.update({userId:1001},{$push:{cartList:{id:200,name:"imac"}}}) 58 | ``` 59 | 60 | ``` 61 | //$pull 删除 将carts这张表中的cartList中id等于100的数据删除 62 | db.carts.update({userId:1001},{$pull:{cartList:{id:100}}}) 63 | ``` 64 | 65 | ``` 66 | //$set 更新的操作 67 | db.carts.update({userId:1001,"cartList.id":100},{$set:{"cartList.$.name":"xiaomi"}}) 68 | ``` 69 | 70 | ``` 71 | db.users.update({userId:"100000077","cartList.productId":"201710016"},{$set:{"cartList.$.productNum":"3"}}) 72 | ``` 73 | 74 | -------------------------------------------------------------------------------- /server/app.js: -------------------------------------------------------------------------------- 1 | const Koa = require('koa') 2 | const app = new Koa() 3 | const views = require('koa-views') 4 | const json = require('koa-json') 5 | const onerror = require('koa-onerror') 6 | const bodyparser = require('koa-bodyparser') 7 | const logger = require('koa-logger') 8 | 9 | const goods = require('./routes/goods') 10 | const users = require('./routes/users') 11 | const cors=require("koa2-cors") 12 | // error handler 13 | onerror(app) 14 | 15 | // middlewares 16 | app.use(bodyparser({ 17 | enableTypes:['json', 'form', 'text'] 18 | })) 19 | app.use(cors({ 20 | origin:"http://192.168.14.63:8080", //配置允许跨域的域名 21 | credentials:true 22 | })) 23 | app.use(json()) 24 | app.use(logger()) 25 | app.use(require('koa-static')(__dirname + '/public')) 26 | 27 | app.use(views(__dirname + '/views', { 28 | extension: 'pug' 29 | })) 30 | 31 | // logger 32 | app.use(async (ctx, next) => { 33 | const start = new Date() 34 | await next() 35 | const ms = new Date() - start 36 | console.log(`${ctx.method} ${ctx.url} - ${ms}ms`) 37 | }) 38 | app.use(async (ctx,next)=>{ 39 | //登录后才可以访问后端其他的接口 40 | console.log(ctx.path) 41 | if(ctx.cookies.get("userId")){ 42 | await next() 43 | }else{ 44 | //没有登录的情况后端有些接口可以访问 45 | if(ctx.path=="/users/login" ||ctx.path=="/goods/list"||ctx.path=="/users/logout"){ 46 | await next() 47 | }else{ 48 | ctx.body={ 49 | code:1001, 50 | msg:"未登录" 51 | } 52 | } 53 | } 54 | }) 55 | // routes 56 | app.use(goods.routes(), goods.allowedMethods()) 57 | app.use(users.routes(), users.allowedMethods()) 58 | 59 | // error-handling 60 | app.on('error', (err, ctx) => { 61 | console.error('server error', err, ctx) 62 | }); 63 | 64 | module.exports = app 65 | -------------------------------------------------------------------------------- /server/bin/www: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | /** 4 | * Module dependencies. 5 | */ 6 | 7 | var app = require('../app'); 8 | var debug = require('debug')('demo:server'); 9 | var http = require('http'); 10 | 11 | /** 12 | * Get port from environment and store in Express. 13 | */ 14 | 15 | var port = normalizePort(process.env.PORT || '3000'); 16 | // app.set('port', port); 17 | 18 | /** 19 | * Create HTTP server. 20 | */ 21 | 22 | var server = http.createServer(app.callback()); 23 | 24 | /** 25 | * Listen on provided port, on all network interfaces. 26 | */ 27 | 28 | server.listen(port); 29 | server.on('error', onError); 30 | server.on('listening', onListening); 31 | 32 | /** 33 | * Normalize a port into a number, string, or false. 34 | */ 35 | 36 | function normalizePort(val) { 37 | var port = parseInt(val, 10); 38 | 39 | if (isNaN(port)) { 40 | // named pipe 41 | return val; 42 | } 43 | 44 | if (port >= 0) { 45 | // port number 46 | return port; 47 | } 48 | 49 | return false; 50 | } 51 | 52 | /** 53 | * Event listener for HTTP server "error" event. 54 | */ 55 | 56 | function onError(error) { 57 | if (error.syscall !== 'listen') { 58 | throw error; 59 | } 60 | 61 | var bind = typeof port === 'string' 62 | ? 'Pipe ' + port 63 | : 'Port ' + port; 64 | 65 | // handle specific listen errors with friendly messages 66 | switch (error.code) { 67 | case 'EACCES': 68 | console.error(bind + ' requires elevated privileges'); 69 | process.exit(1); 70 | break; 71 | case 'EADDRINUSE': 72 | console.error(bind + ' is already in use'); 73 | process.exit(1); 74 | break; 75 | default: 76 | throw error; 77 | } 78 | } 79 | 80 | /** 81 | * Event listener for HTTP server "listening" event. 82 | */ 83 | 84 | function onListening() { 85 | var addr = server.address(); 86 | var bind = typeof addr === 'string' 87 | ? 'pipe ' + addr 88 | : 'port ' + addr.port; 89 | debug('Listening on ' + bind); 90 | } 91 | -------------------------------------------------------------------------------- /src/assets/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /server/README.md: -------------------------------------------------------------------------------- 1 | ## 一、koa脚手架 2 | 3 | ``` 4 | //1.安装依赖 5 | npm i koa-generator -g 6 | ``` 7 | 8 | ``` 9 | //2.创建项目 10 | koa2 server 11 | ``` 12 | 13 | ``` 14 | //3.启动项目 15 | npm i 16 | npm run dev 17 | ``` 18 | 19 | ## 二、操作数据库 20 | 21 | ``` 22 | //1.安装mongoose 23 | yarn add mongoose 24 | ``` 25 | 26 | 2-1 mongoose模块化 27 | 28 | ```js 29 | //db.js 30 | //1.连接数据 31 | const mongoose = require('mongoose'); 32 | mongoose.connect( 'mongodb://127.0.0.1:27017/shop', {useNewUrlParser: true},(err)=>{ 33 | if(err) throw err; 34 | console.log("database连接成功") 35 | }); 36 | module.exports = mongoose; 37 | ``` 38 | 39 | ```js 40 | //2.定义schema和数据库中的表映射 41 | var mongoose = require('./db'); 42 | var GoodsSchema = new mongoose.Schema({ 43 | productId:String, 44 | productName:String, 45 | salePrice:Number, 46 | productImage:String, 47 | productUrl:String 48 | }) 49 | var Goods = mongoose.model('Goods',GoodsSchema,'goods'); 50 | module.exports = Goods; 51 | ``` 52 | 53 | ## 三、给前端返回的数据格式 54 | 55 | ``` 56 | { 57 | //200请求成功 1001没有请求成功 58 | code:200, 59 | msg:"请求成功", 60 | result:data, 61 | total:17 62 | //从数据中请求的数据装载到result中 63 | } 64 | ``` 65 | 66 | ## 四、实现后端跨域 67 | 68 | ```js 69 | //1.安装koa2-cors这个模块 70 | yarn add koa2-cors 71 | //2.配置 http://192.168.14.57:8080/ 读取后台的数据 72 | const cors = require('koa2-cors'); 73 | app.use(cors({ 74 | origin:"*" //配置允许跨域的域名 75 | })) 76 | ``` 77 | 78 | 79 | 80 | ## 五、axios-get 81 | 82 | #### 5-1 parmas参数传递数据给后端 83 | 84 | ```js 85 | methods: { 86 | handlePrice(gt, lt) { 87 | console.log(gt, lt); 88 | this.$http({ 89 | url: "/goods/price", 90 | method: "get", 91 | params: { 92 | gt, 93 | lt 94 | } 95 | }).then(res => { 96 | this.goodsList = res.data.result; 97 | }); 98 | } 99 | } 100 | ``` 101 | 102 | #### 5-2 后端query接收get传值 103 | 104 | ```js 105 | /* 根据价格大小查询 */ 106 | router.get("/goods/price", async ctx => { 107 | var { gt, lt } = ctx.query; 108 | }) 109 | ``` 110 | 111 | #### 5-3 对数据库进行查询 112 | 113 | ```js 114 | var data = await GoodsModel.find({ salePrice: { $gt: gt, $lt: lt } }) 115 | ``` 116 | 117 | #### 5-4 对有数据和没数据的处理 118 | 119 | ```js 120 | //后台 121 | /* 根据价格大小查询 */ 122 | router.get("/goods/price", async ctx => { 123 | var { gt, lt } = ctx.query; 124 | var data = await GoodsModel.find({ salePrice: { $gt: gt, $lt: lt } }) 125 | if (data.length) { 126 | ctx.body = { 127 | code: 200, 128 | msg: "数据请求成功", 129 | result: data, 130 | total: data.length 131 | } 132 | }else{ 133 | ctx.body = { 134 | code:1001, 135 | msg:"没有数据" 136 | } 137 | } 138 | 139 | }) 140 | ``` 141 | 142 | ```js 143 | //前台 144 | methods: { 145 | handlePrice(gt, lt) { 146 | console.log(gt, lt); 147 | this.$http({ 148 | url: "/goods/price", 149 | method: "get", 150 | params: { 151 | gt, 152 | lt 153 | } 154 | }).then(res => { 155 | if (res.data.code == 200) { 156 | this.goodsList = res.data.result; 157 | }else{ 158 | this.goodsList = []; 159 | this.$message({ 160 | duration:1000, 161 | message:res.data.msg, 162 | type: 'warning' 163 | }) 164 | } 165 | }); 166 | } 167 | } 168 | ``` 169 | 170 | -------------------------------------------------------------------------------- /server/routes/users.js: -------------------------------------------------------------------------------- 1 | const router = require('koa-router')() 2 | const UsersModel = require('../models/users') 3 | const GoodsModel = require('../models/goods') 4 | router.prefix('/users') 5 | 6 | router.get('/', async ctx => { 7 | var data = await UsersModel.find({}) 8 | ctx.body = { 9 | code: 200, 10 | msg: "请求成功", 11 | result: data, 12 | } 13 | }) 14 | router.post('/addCart', async ctx => { 15 | var userId = ctx.cookies.get("userId") 16 | if(userId){ 17 | var { productId } = ctx.request.body 18 | // console.log(productId) 19 | var goodsData = await GoodsModel.findOne({ productId: productId }) 20 | var obj = JSON.parse(JSON.stringify(goodsData)); 21 | obj.productNum = 1; 22 | obj.checked = true 23 | var userData = await UsersModel.findOne({}) 24 | if (userData.cartList.every(item => item.productId != productId)) { 25 | await UsersModel.update({ userId: userId }, { $push: { "cartList": obj } }) 26 | ctx.body = { 27 | msg: "添加成功", 28 | code: 200 29 | } 30 | } else { 31 | ctx.body = { 32 | msg: "已经添加到购物车", 33 | } 34 | } 35 | }else{ 36 | ctx.body={ 37 | msg:"没有登录" 38 | } 39 | } 40 | 41 | }) 42 | 43 | 44 | router.post('/login', async ctx => { 45 | var data = ctx.request.body 46 | console.log(data) 47 | var res = await UsersModel.findOne(data) 48 | console.log(res) 49 | if (res) { 50 | ctx.cookies.set("userId", res.userId, { 51 | maxAge: 1000 * 60 * 60 52 | }) 53 | ctx.cookies.set("userName", res.userName, { 54 | maxAge: 1000 * 60 * 60 55 | }) 56 | ctx.body = { 57 | code: "200", 58 | msg: "登陆成功", 59 | result:res.userName 60 | } 61 | } else { 62 | ctx.body = { 63 | code: "400", 64 | msg: "用户名或密码错误" 65 | } 66 | } 67 | }) 68 | //检查一下登录的状态 69 | router.get('/checkLogin',async ctx=>{ 70 | var userId=ctx.cookies.get("userId"); 71 | if(userId){ 72 | ctx.body={ 73 | code:200, 74 | msg:"登陆成功", 75 | result:ctx.cookies.get("userName") 76 | } 77 | } 78 | else{ 79 | ctx.body={ 80 | code:1001, 81 | msg:"未登录" 82 | } 83 | } 84 | }) 85 | router.post('/logout',async ctx=>{ 86 | ctx.cookies.set("userId","",{ 87 | maxAge:-1 88 | }) 89 | ctx.cookies.set("userName","",{ 90 | maxAge:-1 91 | }) 92 | ctx.body={ 93 | code:200, 94 | msg:"退出登录" 95 | } 96 | }) 97 | router.get('/cartList',async ctx=>{ 98 | var data=await UsersModel.findOne({}) 99 | var res=data.cartList; 100 | console.log(res) 101 | ctx.body={ 102 | code:200, 103 | result:res 104 | } 105 | }) 106 | router.post('/cartList/del',async ctx=>{ 107 | var {productId}=ctx.request.body; 108 | var userId=ctx.cookies.get("userId") 109 | var data=await UsersModel.update({userId:userId},{$pull:{cartList:{productId:productId}}}) 110 | // console.log(data) 111 | if(data.od==1){ 112 | ctx.body={ 113 | code:200, 114 | msg:"删除成功" 115 | } 116 | }else{ 117 | ctx.body={ 118 | code:1001, 119 | msg:"删除失败" 120 | } 121 | } 122 | }) 123 | router.post('/cartList/edit',async ctx=>{ 124 | var {productId,productNum,check}=ctx.request.body; 125 | var userId=ctx.cookies.get("userId") 126 | var data=await UsersModel.update({userId:userId,"cartList.productId":productId},{$set:{"cartList.$.productNum":productNum,"cartList.$.check":check}}) 127 | console.log(data) 128 | if(data.ok==1){ 129 | ctx.body={ 130 | msg:"修改成功", 131 | code:200 132 | } 133 | } 134 | }) 135 | 136 | module.exports = router 137 | -------------------------------------------------------------------------------- /server/resourse/goods-net.json: -------------------------------------------------------------------------------- 1 | {"_id":{"$oid":"58c284b13a1bb9aa7033801b"},"productId":"201710003","productName":"平衡车","salePrice":{"$numberInt":"1999"},"productImage":"https://cdn.cnbj0.fds.api.mi-img.com/b2c-miapp-a1/T1xVE_Bydv1RXrhCrK.jpg","productUrl":""} 2 | {"_id":{"$oid":"58c284d7117a2e6599abef5e"},"productId":"201710004","productName":"头戴式耳机-3","salePrice":{"$numberInt":"80"},"productImage":"https://cdn.cnbj0.fds.api.mi-img.com/b2c-miapp-a1/e4c0f21c-3bd4-323e-673b-a9c1c1c6e294.jpg","productUrl":""} 3 | {"_id":{"$oid":"58c284e6117a2e6599abef5f"},"productId":"201710005","productName":"小米笔记本","salePrice":{"$numberInt":"3549"},"productImage":"https://cdn.cnbj0.fds.api.mi-img.com/b2c-shopapi-pms/pms_1561023757.05432233.jpg","productUrl":""} 4 | {"_id":{"$oid":"58c284f4117a2e6599abef60"},"productId":"201710006","productName":"小米9","salePrice":{"$numberInt":"2499"},"productImage":"https://cdn.cnbj1.fds.api.mi-img.com/mi-mall/6e50095e49ec9acad6b91370373d99a8.jpg","productUrl":""} 5 | {"_id":{"$oid":"58e704ef98dab115d336b3f1"},"productId":"201710002","productName":"智能插线板","salePrice":{"$numberInt":"59"},"productImage":"https://cdn.cnbj0.fds.api.mi-img.com/b2c-shopapi-pms/pms_1557474791.84184829.jpg","productUrl":""} 6 | {"_id":{"$oid":"58e7050398dab115d336b3f2"},"productId":"201710007","productName":"自拍杆","salePrice":{"$numberInt":"39"},"productImage":"https://cdn.cnbj0.fds.api.mi-img.com/b2c-miapp-a1/dc04dc04-9a43-b521-dfbe-8f8039d16c95.jpg","productUrl":""} 7 | {"_id":{"$oid":"58e7050c98dab115d336b3f3"},"productId":"201710008","productName":"小米净水器","salePrice":{"$numberInt":"1999"},"productImage":"https://cdn.cnbj0.fds.api.mi-img.com/b2c-shopapi-pms/pms_1555486031.585971.jpg","productUrl":""} 8 | {"_id":{"$oid":"58e7051698dab115d336b3f4"},"productId":"201710009","productName":"IH 电饭煲","salePrice":{"$numberInt":"999"},"productImage":"https://cdn.cnbj0.fds.api.mi-img.com/b2c-shopapi-pms/pms_1553764670.0369286.jpg","productUrl":""} 9 | {"_id":{"$oid":"58e7052198dab115d336b3f5"},"productId":"201710010","productName":"小米电视4A","salePrice":{"$numberInt":"2099"},"productImage":"https://cdn.cnbj0.fds.api.mi-img.com/b2c-shopapi-pms/pms_1572837419.47939903.jpg","productUrl":""} 10 | {"_id":{"$oid":"58e7052a98dab115d336b3f6"},"productId":"201710011","productName":"小米空调","salePrice":{"$numberInt":"1000"},"productImage":"//cdn.cnbj0.fds.api.mi-img.com/b2c-mimall-media/2b911be4c2f156bb6e4cf367c6080045.jpg?thumb=1&w=200&h=200","productUrl":""} 11 | {"_id":{"$oid":"58e7053298dab115d336b3f7"},"productId":"201710012","productName":"小米洗衣机","salePrice":{"$numberInt":"1100"},"productImage":"//cdn.cnbj1.fds.api.mi-img.com/mi-mall/ec20453216dcd42f982cffe5fdbc3115.jpg?thumb=1&w=200&h=200&f=webp&q=90","productUrl":""} 12 | {"_id":{"$oid":"58e7053c98dab115d336b3f8"},"productId":"201710013","productName":"小米智能门锁","salePrice":{"$numberInt":"2000"},"productImage":"//cdn.cnbj1.fds.api.mi-img.com/mi-mall/0baacf6e54cbf89cab2c543cc02344e9.jpg?thumb=1&w=200&h=200&f=webp&q=90","productUrl":""} 13 | {"_id":{"$oid":"58e7054798dab115d336b3f9"},"productId":"201710014","productName":"九号平衡车","salePrice":{"$numberInt":"1600"},"productImage":"//cdn.cnbj1.fds.api.mi-img.com/mi-mall/0c65d472682f0679e192dc7b4cd6e64c.jpg?thumb=1&w=200&h=200&f=webp&q=90","productUrl":""} 14 | {"_id":{"$oid":"58e7055198dab115d336b3fa"},"productId":"201710015","productName":"米家烤箱","salePrice":{"$numberInt":"1200"},"productImage":"https://cdn.cnbj0.fds.api.mi-img.com/b2c-shopapi-pms/pms_1559644554.04136931.jpg","productUrl":""} 15 | {"_id":{"$oid":"58e7057798dab115d336b3fb"},"productId":"201710016","productName":"曲面电视","salePrice":{"$numberInt":"700"},"productImage":"//cdn.cnbj1.fds.api.mi-img.com/mi-mall/ef6b4e9b9151849b3b1fb1dbf069c6ed.jpg?thumb=1&w=200&h=200&f=webp&q=90","productUrl":""} 16 | {"_id":{"$oid":"58e7058498dab115d336b3fc"},"productId":"201710017","productName":"小钢炮蓝牙音箱","salePrice":{"$numberInt":"129"},"productImage":"https://cdn.cnbj0.fds.api.mi-img.com/b2c-miapp-a1/T1o7bgB5Kv1RXrhCrK.jpg","productUrl":""} 17 | {"_id":{"$oid":"58e7058d98dab115d336b3fd"},"productId":"201710018","productName":"智能摄像机","salePrice":{"$numberInt":"389"},"productImage":"https://cdn.cnbj0.fds.api.mi-img.com/b2c-shopapi-pms/pms_1529062317.63437020.jpg","productUrl":""} 18 | -------------------------------------------------------------------------------- /src/views/About.vue: -------------------------------------------------------------------------------- 1 | 37 | 109 | -------------------------------------------------------------------------------- /server/resourse/dumall-users.json: -------------------------------------------------------------------------------- 1 | {"_id":{"$oid":"58c41d5d3eddd93e9ab5b078"},"userId":"100000077","userName":"admin","userPwd":"123456","orderList":[{"orderId":"6224201705302250301","orderTotal":3359,"addressInfo":{"addressId":"100001","userName":"JackBean","streetName":"北京市朝阳区朝阳公园","postCode":100001,"tel":12345678901.0,"isDefault":true},"goodsList":[{"productImage":"mi6.jpg","salePrice":"2499","productName":"小米6","productId":"201710006","_id":{"$oid":"58c284f4117a2e6599abef60"},"productNum":"1","checked":"1"},{"productImage":"2.jpg","salePrice":"80","productName":"头戴式耳机-3","productId":"201710004","_id":{"$oid":"58c284d7117a2e6599abef5e"},"productNum":"7","checked":"1"}],"orderStatus":"1","createDate":"2017-05-30 22:50:30"},{"orderId":"9201706071525282","orderTotal":"5558","orderStatus":1,"_id":{"$oid":"5937aa68adad24614cb310af"},"createDate":"2017-06-07 15:25:28","goodsList":[{"productImage":"mi6.jpg","salePrice":"2499","productName":"小米6","productId":"201710006","_id":{"$oid":"58c284f4117a2e6599abef60"},"productNum":"2"},{"productImage":"2.jpg","salePrice":"80","productName":"头戴式耳机-3","productId":"201710004","_id":{"$oid":"58c284d7117a2e6599abef5e"},"productNum":"7"}]},{"orderId":"7201706081545294","orderTotal":"5558","orderStatus":1,"_id":{"$oid":"59390099c0444831c461d576"},"createDate":"2017-06-08 15:45:29","goodsList":[{"productImage":"mi6.jpg","salePrice":"2499","productName":"小米6","productId":"201710006","_id":{"$oid":"58c284f4117a2e6599abef60"},"productNum":"2"},{"productImage":"2.jpg","salePrice":"80","productName":"头戴式耳机-3","productId":"201710004","_id":{"$oid":"58c284d7117a2e6599abef5e"},"productNum":"7"}]},{"orderId":"7201706131105338","orderTotal":"560","orderStatus":1,"_id":{"$oid":"593f567d366e42108986268a"},"createDate":"2017-06-13 11:05:33","goodsList":[{"productImage":"2.jpg","salePrice":"80","productName":"头戴式耳机-3","productId":"201710004","_id":{"$oid":"58c284d7117a2e6599abef5e"},"productNum":"7"}]},{"orderId":"5201706131122131","orderTotal":"30160","orderStatus":1,"_id":{"$oid":"593f5a65366e42108986268b"},"createDate":"2017-06-13 11:22:13","goodsList":[{"productImage":"9.jpg","salePrice":"999","productName":"IH 电饭煲","productId":"201710009","_id":{"$oid":"58e7051698dab115d336b3f4"},"productNum":"3"},{"productImage":"14.jpg","salePrice":"1600","productName":"Ear1600","productId":"201710014","_id":{"$oid":"58e7054798dab115d336b3f9"},"productNum":"1"},{"productImage":"note.jpg","salePrice":"3549","productName":"小米笔记本","productId":"201710005","_id":{"$oid":"58c284e6117a2e6599abef5f"},"productNum":"7"},{"productImage":"2.jpg","salePrice":"80","productName":"头戴式耳机-3","productId":"201710004","_id":{"$oid":"58c284d7117a2e6599abef5e"},"productNum":"9"}]},{"orderId":"8201706131828404","orderTotal":"32367","orderStatus":1,"_id":{"$oid":"593fbe58e1a5b7147605cb33"},"createDate":"2017-06-13 18:28:40","goodsList":[{"productImage":"9.jpg","salePrice":"999","productName":"IH 电饭煲","productId":"201710009","_id":{"$oid":"58e7051698dab115d336b3f4"},"productNum":"5"},{"productImage":"14.jpg","salePrice":"1600","productName":"Ear1600","productId":"201710014","_id":{"$oid":"58e7054798dab115d336b3f9"},"productNum":"1"},{"productImage":"note.jpg","salePrice":"3549","productName":"小米笔记本","productId":"201710005","_id":{"$oid":"58c284e6117a2e6599abef5f"},"productNum":"7"},{"productImage":"2.jpg","salePrice":"80","productName":"头戴式耳机-3","productId":"201710004","_id":{"$oid":"58c284d7117a2e6599abef5e"},"productNum":"10"},{"productImage":"1.jpg","salePrice":"129","productName":"小钢炮蓝牙音箱","productId":"201710017","_id":{"$oid":"58e7058498dab115d336b3fc"},"productNum":"1"}]},{"orderId":"7201706142225144","orderTotal":"2738","orderStatus":1,"_id":{"$oid":"5941474ae1a5b7147605cb34"},"createDate":"2017-06-14 22:25:14","goodsList":[{"productImage":"14.jpg","salePrice":"1600","productName":"Ear1600","productId":"201710014","_id":{"$oid":"58e7054798dab115d336b3f9"},"productNum":"1"},{"productImage":"2.jpg","salePrice":"80","productName":"头戴式耳机-3","productId":"201710004","_id":{"$oid":"58c284d7117a2e6599abef5e"},"productNum":"11"},{"productImage":"1.jpg","salePrice":"129","productName":"小钢炮蓝牙音箱","productId":"201710017","_id":{"$oid":"58e7058498dab115d336b3fc"},"productNum":"2"}]},{"orderId":"1201706142242198","orderTotal":"2738","orderStatus":1,"_id":{"$oid":"59414b4be1a5b7147605cb35"},"createDate":"2017-06-14 22:42:19","goodsList":[{"productImage":"14.jpg","salePrice":"1600","productName":"Ear1600","productId":"201710014","_id":{"$oid":"58e7054798dab115d336b3f9"},"productNum":"1"},{"productImage":"2.jpg","salePrice":"80","productName":"头戴式耳机-3","productId":"201710004","_id":{"$oid":"58c284d7117a2e6599abef5e"},"productNum":"11"},{"productImage":"1.jpg","salePrice":"129","productName":"小钢炮蓝牙音箱","productId":"201710017","_id":{"$oid":"58e7058498dab115d336b3fc"},"productNum":"2"}]},{"orderId":"8201706150102580","orderTotal":"2499","orderStatus":1,"_id":{"$oid":"59416c42e1a5b7147605cb36"},"createDate":"2017-06-15 01:02:58","goodsList":[{"productImage":"mi6.jpg","salePrice":"2499","productName":"小米6","productId":"201710006","_id":{"$oid":"58c284f4117a2e6599abef60"},"productNum":"1"}]},{"orderId":"5201706150146458","orderTotal":"2886","orderStatus":1,"_id":{"$oid":"59417685e1a5b7147605cb37"},"createDate":"2017-06-15 01:46:45","goodsList":[{"productImage":"1.jpg","salePrice":"129","productName":"小钢炮蓝牙音箱","productId":"201710017","_id":{"$oid":"58e7058498dab115d336b3fc"},"productNum":"3"},{"productImage":"mi6.jpg","salePrice":"2499","productName":"小米6","productId":"201710006","_id":{"$oid":"58c284f4117a2e6599abef60"},"productNum":"1"}]},{"orderId":"9201706151140355","orderTotal":"4548","orderStatus":1,"_id":{"$oid":"594201b348d881235342dbc0"},"createDate":"2017-06-15 11:40:35","goodsList":[{"productImage":"9.jpg","salePrice":"999","productName":"IH 电饭煲","productId":"201710009","_id":{"$oid":"58e7051698dab115d336b3f4"},"productNum":"1"},{"productImage":"note.jpg","salePrice":"3549","productName":"小米笔记本","productId":"201710005","_id":{"$oid":"58c284e6117a2e6599abef5f"},"productNum":"1"}]},{"orderId":"1201706151143137","orderTotal":"4548","orderStatus":1,"_id":{"$oid":"5942025148d881235342dbc1"},"createDate":"2017-06-15 11:43:13","goodsList":[{"productImage":"9.jpg","salePrice":"999","productName":"IH 电饭煲","productId":"201710009","_id":{"$oid":"58e7051698dab115d336b3f4"},"productNum":"1"},{"productImage":"note.jpg","salePrice":"3549","productName":"小米笔记本","productId":"201710005","_id":{"$oid":"58c284e6117a2e6599abef5f"},"productNum":"1"}]}],"cartList":[{"productImage":"1.jpg","salePrice":"129","productName":"小钢炮蓝牙音箱","productId":"201710017","_id":{"$oid":"58e7058498dab115d336b3fc"},"productNum":"6","checked":"0"},{"productImage":"mi6.jpg","salePrice":"2499","productName":"小米6","productId":"201710006","_id":{"$oid":"58c284f4117a2e6599abef60"},"productNum":"6","checked":"0"},{"productImage":"9.jpg","salePrice":"999","productName":"IH 电饭煲","productId":"201710009","_id":{"$oid":"58e7051698dab115d336b3f4"},"productNum":"1","checked":"1"},{"productImage":"note.jpg","salePrice":"3549","productName":"小米笔记本","productId":"201710005","_id":{"$oid":"58c284e6117a2e6599abef5f"},"productNum":"1","checked":"1"},{"productImage":"6.jpg","salePrice":"59","productName":"智能插线板","productId":"201710002","_id":{"$oid":"58e704ef98dab115d336b3f1"},"productNum":"1"}],"addressList":[{"addressId":"100001","userName":"JackBean","streetName":"北京市朝阳区朝阳公园","postCode":"100001","tel":"12345678901","isDefault":true},{"addressId":"100004","userName":"Mary","streetName":"北京市朝阳区SOHO","postCode":"100005","tel":"010555555","isDefault":false},{"addressId":"100005","userName":"Donie","streetName":"北京市海淀区西二旗","postCode":"100009","tel":"18710987654","isDefault":false},{"addressId":"100006","userName":"Cherry","streetName":"北京市海淀区回龙观","postCode":"100009","tel":"010655555","isDefault":false},{"addressId":"100007","userName":"Joke","streetName":"北京市朝阳区望京","postCode":"100010","tel":"13619898722","isDefault":false},{"addressId":"100008","userName":"Frank","streetName":"北京市海淀区中关村软件园","postCode":"100011","tel":"10125652345","isDefault":false}],"__v":30} 2 | -------------------------------------------------------------------------------- /src/views/Home.vue: -------------------------------------------------------------------------------- 1 | 67 | 68 | 278 | 398 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # vue-shop 2 | 3 | ## 一、加载首页数据 4 | 5 | ``` 6 | /goods/list 7 | { 8 | start:0, 9 | limit:8 10 | } 11 | ``` 12 | 13 | ```js 14 | //1.前端代码实现 15 | //只取八条数据,从第一开始获取 16 | export default { 17 | data() { 18 | return { 19 | limit: 8, 20 | start: 0, 21 | goodsList: [] 22 | }; 23 | } 24 | mounted() { 25 | this.initData(); 26 | }, 27 | methods: { 28 | initData() { 29 | this.$http 30 | .get("/goods/list", { 31 | //通过params属性传递参数给后端 32 | params: { start: this.start, limit: this.limit } 33 | }) 34 | .then(res => { 35 | if (res.data.code == 200) { 36 | this.goodsList = res.data.result; 37 | this.total = Math.ceil(res.data.total / this.limit) * 10; 38 | } 39 | }); 40 | } 41 | } 42 | }; 43 | 44 | ``` 45 | 46 | ```js 47 | //后端业务 48 | router.get('/goods/list', async (ctx) => { 49 | var {start,limit} = ctx.query; 50 | var total = await GoodsModel.find({}).count(); 51 | var data = await GoodsModel.find({}).skip(Number(start)) 52 | .limit(Number(limit)); 53 | ctx.body = { 54 | code: 200, 55 | msg: "首页数据请求成功", 56 | result: data, 57 | //给前端设置分页 58 | total:total 59 | } 60 | }) 61 | ``` 62 | 63 | ## 二、分页 64 | 65 | ```js 66 | //前端代码 67 | //total 10为只有1页 为30就有3页 68 | 76 | ``` 77 | 78 | ```js 79 | methods:{ 80 | getPage(page) { 81 | //改变从哪一个位置开始查询 82 | this.start = (page - 1) * this.limit; 83 | this.initData(); 84 | } 85 | } 86 | 87 | ``` 88 | 89 | ## 三、价格的升序和降序 90 | 91 | ``` 92 | //对goodsList进行升序和降序 93 | ``` 94 | 95 | ``` 96 | //前端代码 97 | 98 | 价格 99 | {{(sortFlag==1)?'':''}} 100 | 101 | ``` 102 | 103 | ```js 104 | methods:{ 105 | compareUp(value) { 106 | return (a, b) => { 107 | return a[value] - b[value]; 108 | }; 109 | }, 110 | compareDown(value) { 111 | return (a, b) => { 112 | return b[value] - a[value]; 113 | }; 114 | }, 115 | handleSort() { 116 | this.sortFlag = this.sortFlag == 1 ? -1 : 1; 117 | if (this.sortFlag == 1) { 118 | this.goodsList.sort(this.compareUp("salePrice")); 119 | } else { 120 | this.goodsList.sort(this.compareDown("salePrice")); 121 | } 122 | } 123 | } 124 | 125 | ``` 126 | 127 | ## 四、根据价格区间进行排序 128 | 129 | ```js 130 | methods:{ 131 | handlePrice(gt,lt){ 132 | this.$http({ 133 | url:'/goods/price', 134 | method:"get", 135 | //传递gt,和lt给后台 136 | params:{ 137 | gt, 138 | lt 139 | } 140 | }).then(res=>{ 141 | if(res.data.code==200){ 142 | this.goodsList = res.data.result; 143 | this.total = 10; 144 | } 145 | }) 146 | }, 147 | } 148 | ``` 149 | 150 | ```js 151 | /* 根据价格区间查询 */ 152 | router.get("/goods/price", async ctx => { 153 | var { gt, lt } = ctx.query; 154 | var data = await GoodsModel.find({ salePrice: { $gt: gt, $lt: lt } }) 155 | if (data.length) { 156 | ctx.body = { 157 | code: 200, 158 | msg: "数据请求成功", 159 | result: data, 160 | total: data.length 161 | } 162 | }else{ 163 | ctx.body = { 164 | code:1001, 165 | msg:"没有数据" 166 | } 167 | } 168 | 169 | }) 170 | ``` 171 | 172 | ## 五、默认 173 | 174 | ```js 175 | 默认 176 | ``` 177 | 178 | ```js 179 | methods:{ 180 | handleDefault(){ 181 | this.initData() 182 | } 183 | } 184 | ``` 185 | 186 | ## 六、添加到购物车 187 | 188 | ```js 189 | methods:{ 190 | addCart(productId){ 191 | this.$http({ 192 | method:"post", 193 | url:'/users/addCart', 194 | data:{ 195 | productId 196 | } 197 | }).then(res=>{ 198 | this.$message({ 199 | message:res.data.msg, 200 | duration:1000, 201 | type:"success" 202 | }) 203 | }) 204 | } 205 | } 206 | ``` 207 | 208 | ```js 209 | //后端代码 210 | //添加到购物车 211 | router.post('/addCart', async ctx => { 212 | var userId = "100000077"; 213 | var { productId } = ctx.request.body; 214 | var goodsData = await GoodsModel.findOne({ productId: productId }); 215 | // productNum,checked 216 | var obj = JSON.parse(JSON.stringify(goodsData)); 217 | obj.productNum = 1; 218 | obj.checked = true; 219 | var userData = await UsersModel.findOne({}); 220 | //看cartList是否有我们要添加的数据 221 | if (userData.cartList.every(item => item.productId != productId)) { 222 | await UsersModel.update({ userId: userId }, { $push: { "cartList": obj } }) 223 | ctx.body = { 224 | msg:"添加成功", 225 | code:200 226 | } 227 | }else{ 228 | ctx.body = { 229 | msg:"已经添加到购物车", 230 | code:200 231 | } 232 | } 233 | }) 234 | ``` 235 | 236 | ## 七、登陆模块 237 | 238 | #### 7-1 跨域访问服务器上的cookie 239 | 240 | ```js 241 | //1.前端代码的配置 main.js 242 | axios.defaults.withCredentials = true 243 | axios.defaults.crossDomain = true; 244 | //允许跨域访问cookie 245 | ``` 246 | 247 | ```js 248 | //2.配置服务器 app.js 249 | app.use(cors({ 250 | origin:"http://192.168.14.57:8080", //配置允许跨域的域名 251 | credentials:true 252 | })) 253 | ``` 254 | 255 | #### 7-2 实现登陆功能 256 | 257 | ``` 258 | 1.前端获取用户和密码 259 | 2.携带用户和密码向后台发送http请求 260 | 3.后端接收用户和密码 261 | 4.向数据库查询 262 | 5.将结果返回给前端 263 | ``` 264 | 265 | ```js 266 | //1.前端获取用户和密码 267 | //2.携带用户和密码向后台发送http请求 268 | 确 定 269 | methods:{ 270 | handleLogin(){ 271 | if(this.form.username && this.form.pass){ 272 | this.$http({ 273 | url:"/users/login", 274 | method:"post", 275 | data:{ 276 | userName:this.form.username, 277 | userPwd:this.form.pass 278 | } 279 | }).then(res=>{ 280 | console.log(res) 281 | }) 282 | } 283 | } 284 | } 285 | ``` 286 | 287 | ```js 288 | //3.后端接收用户和密码 ctx.request.body 289 | // 登陆模块 290 | router.post('/login',async ctx=>{ 291 | var data = ctx.request.body; 292 | }) 293 | ``` 294 | 295 | ```js 296 | //4.向数据库查询 297 | router.post('/login',async ctx=>{ 298 | var data = ctx.request.body; 299 | var res = await UsersModel.findOne(data); 300 | //没有的时候null 有的会返回数据 301 | console.log(res) 302 | }) 303 | ``` 304 | 305 | ```js 306 | //5.将结果返回给前端 307 | // 登陆模块 308 | router.post('/login',async ctx=>{ 309 | var data = ctx.request.body; 310 | var res = await UsersModel.findOne(data); 311 | if(res){ 312 | ctx.body = { 313 | code:"200", 314 | msg:"登陆成功", 315 | successName:res.userName 316 | } 317 | }else{ 318 | ctx.body = { 319 | code:"400", 320 | msg:"用户名和密码错误" 321 | } 322 | } 323 | }) 324 | ``` 325 | 326 | ```js 327 | //前端处理代码 328 | methods:{ 329 | handleLogin(){ 330 | if(this.form.username && this.form.pass){ 331 | this.$http({ 332 | url:"/users/login", 333 | method:"post", 334 | data:{ 335 | userName:this.form.username, 336 | userPwd:this.form.pass 337 | } 338 | }).then(res=>{ 339 | //登陆成功 340 | if(res.data.code==200){ 341 | this.$message({ 342 | message:res.data.msg, 343 | duration:1000, 344 | type:"success" 345 | }) 346 | this.successName = res.data.successName 347 | this.dialogFormVisible = false; 348 | }else{ 349 | //用户名和密码错误 350 | this.$message({ 351 | duration:1000, 352 | message:res.data.msg, 353 | type:"error" 354 | }) 355 | } 356 | }) 357 | }else{ 358 | this.$message({ 359 | message:"用户名和密码不能为空", 360 | duration:1000, 361 | type:"error" 362 | }) 363 | } 364 | } 365 | } 366 | ``` 367 | 368 | #### 7-3 使用cookie记录登陆的状态 369 | 370 | ```js 371 | //1.登陆成功设置cookies 372 | router.post('/login',async ctx=>{ 373 | var data = ctx.request.body; 374 | var res = await UsersModel.findOne(data); 375 | if(res){ 376 | ctx.cookies.set("userId",res.userId,{ 377 | maxAge:1000*60*60 378 | }) 379 | ctx.cookies.set("userName",res.userName,{ 380 | maxAge:1000*60*60 381 | }) 382 | ... 383 | }) 384 | ``` 385 | 386 | ```js 387 | //2.配置路由检查一下登陆的状态 388 | //检查一下登陆的状态 389 | router.get('/checkLogin',async ctx=>{ 390 | var userId = ctx.cookies.get("userId"); 391 | if(userId){ 392 | ctx.body = { 393 | code:200, 394 | msg:"登陆成功", 395 | result:ctx.cookies.get("userName") 396 | } 397 | }else{ 398 | ctx.body = { 399 | code:1001, 400 | msg:"未登录" 401 | } 402 | } 403 | }) 404 | ``` 405 | 406 | ```js 407 | //3.页面初始加载时,调用/user/checkLogin检查用户是否登陆 408 | mounted(){ 409 | this.$http('/users/checkLogin').then(res=>{ 410 | if(res.data.code==200){ 411 | this.successName = res.data.result 412 | }else{ 413 | this.$message({ 414 | message:"未登陆", 415 | duration:1000, 416 | type:"warning" 417 | }) 418 | } 419 | }) 420 | } 421 | ``` 422 | 423 | #### 7-4 退出登陆 424 | 425 | ```js 426 | //1.配置路由 清除cookies 427 | router.post('/logout',async ctx=>{ 428 | ctx.cookies.set("userId","",{ 429 | maxAge:-1 430 | }) 431 | ctx.cookies.set("userName","",{ 432 | maxAge:-1 433 | }) 434 | ctx.body ={ 435 | code:200, 436 | msg:"退出登陆" 437 | } 438 | }) 439 | ``` 440 | 441 | ```js 442 | //2.前端代码 443 | methods:{ 444 | handleLogout(){ 445 | this.$http.post('/users/logout').then(res=>{ 446 | this.$message({ 447 | message:res.data.msg, 448 | duration:1000 449 | }) 450 | this.successName = "" 451 | }) 452 | } 453 | } 454 | ``` 455 | 456 | #### 7-5 登陆拦截 457 | 458 | ```js 459 | //使用中间件 460 | //ctx.path 获取前端向后台访问的接口 461 | app.use( async (ctx,next)=>{ 462 | console.log(ctx.path) 463 | // 登陆才可以访问后端其他的接口 464 | if(ctx.cookies.get("userId")){ 465 | await next() 466 | }else{ 467 | //没有登陆的情况后端有些接口时可以访问 468 | if(ctx.path =="/users/login" || ctx.path =="/goods/list" || ctx.path == "/users/Logout"){ 469 | await next() 470 | }else{ 471 | ctx.body = { 472 | code:1001, 473 | msg:"未登陆" 474 | } 475 | } 476 | } 477 | }) 478 | ``` 479 | 480 | ## 八、购物车模块 481 | 482 | #### 8-1 购物车查询 483 | 484 | ```js 485 | router.get('/cartList',async ctx=>{ 486 | var data = await UsersModel.findOne({}); 487 | var res = data.cartList; 488 | ctx.body ={ 489 | code:200, 490 | result:res 491 | } 492 | }) 493 | ``` 494 | 495 | #### 8-2 购物车的删除 496 | 497 | ```js 498 | //后代代码 499 | router.post('/cartList/del',async ctx=>{ 500 | var {productId} = ctx.request.body; 501 | var userId = ctx.cookies.get("userId"); 502 | var data = await UsersModel.update({userId:userId},{$pull:{cartList:{productId:productId}}}); 503 | if(data.ok==1){ 504 | ctx.body = { 505 | code:200, 506 | msg:"删除成功" 507 | } 508 | }else{ 509 | ctx.body = { 510 | code:1001, 511 | msg:"删除失败" 512 | } 513 | } 514 | }) 515 | ``` 516 | 517 | ```js 518 | //前端代码 519 | methods:{ 520 | handleDelete(productId) { 521 | console.log(productId); 522 | this.$confirm("此操作将永久删除该文件, 是否继续?", "提示", { 523 | confirmButtonText: "确定", 524 | cancelButtonText: "取消", 525 | type: "warning" 526 | }) 527 | .then(() => { 528 | this.$http 529 | .post("/users/cartList/del", { 530 | productId 531 | }) 532 | .then(res => { 533 | console.log(res); 534 | this.initData(); 535 | }); 536 | }) 537 | .catch(() => {}); 538 | } 539 | } 540 | ``` 541 | 542 | #### 8-3 购物车的修改 543 | 544 | ```js 545 | //$set 546 | //前台的代码 tips 传递item 547 | 550 | 551 | ``` 552 | 553 | ```js 554 | methods:{ 555 | async onChange(item){ 556 | var {productNum,productId,checked} = item; 557 | await this.$http.post('/users/cartList/edit',{ 558 | productNum, 559 | productId, 560 | checked 561 | }) 562 | } 563 | } 564 | ``` 565 | 566 | ```js 567 | //后台代码 568 | router.post('/cartList/edit',async ctx=>{ 569 | var {productNum,productId,checked} = ctx.request.body; 570 | var userId = ctx.cookies.get("userId"); 571 | var data = await UsersModel.update( 572 | {userId:userId,"cartList.productId": 573 | productId},{$set:{ 574 | "cartList.$.productNum":productNum, 575 | "cartList.$.checked":checked 576 | }}); 577 | if(data.ok==1){ 578 | ctx.body ={ 579 | msg:"修改成功", 580 | code:200 581 | } 582 | } 583 | }) 584 | ``` 585 | 586 | ## 九、路由守卫 587 | 588 | ```js 589 | Tips:一定要配置再路由地址所对应的主组件 590 | // 路由守卫 591 | beforeRouteLeave (to,from,next) { 592 | this.$http('/users/checkLogin').then(res=>{ 593 | if(res.data.code == 200){ 594 | next() 595 | }else{ 596 | this.$message({ 597 | message:res.data.msg, 598 | duration:1000 599 | }) 600 | } 601 | }) 602 | } 603 | }; 604 | ``` 605 | 606 | -------------------------------------------------------------------------------- /server/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@types/babel-types@*", "@types/babel-types@^7.0.0": 6 | version "7.0.7" 7 | resolved "https://registry.npm.taobao.org/@types/babel-types/download/@types/babel-types-7.0.7.tgz#667eb1640e8039436028055737d2b9986ee336e3" 8 | integrity sha1-Zn6xZA6AOUNgKAVXN9K5mG7jNuM= 9 | 10 | "@types/babylon@^6.16.2": 11 | version "6.16.5" 12 | resolved "https://registry.npm.taobao.org/@types/babylon/download/@types/babylon-6.16.5.tgz#1c5641db69eb8cdf378edd25b4be7754beeb48b4" 13 | integrity sha1-HFZB22nrjN83jt0ltL53VL7rSLQ= 14 | dependencies: 15 | "@types/babel-types" "*" 16 | 17 | abbrev@1: 18 | version "1.1.1" 19 | resolved "https://registry.npm.taobao.org/abbrev/download/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" 20 | integrity sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg= 21 | 22 | accepts@^1.3.5: 23 | version "1.3.7" 24 | resolved "https://registry.npm.taobao.org/accepts/download/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" 25 | integrity sha1-UxvHJlF6OytB+FACHGzBXqq1B80= 26 | dependencies: 27 | mime-types "~2.1.24" 28 | negotiator "0.6.2" 29 | 30 | acorn-globals@^3.0.0: 31 | version "3.1.0" 32 | resolved "https://registry.npm.taobao.org/acorn-globals/download/acorn-globals-3.1.0.tgz?cache=0&sync_timestamp=1568131333396&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn-globals%2Fdownload%2Facorn-globals-3.1.0.tgz#fd8270f71fbb4996b004fa880ee5d46573a731bf" 33 | integrity sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8= 34 | dependencies: 35 | acorn "^4.0.4" 36 | 37 | acorn@^3.1.0: 38 | version "3.3.0" 39 | resolved "https://registry.npm.taobao.org/acorn/download/acorn-3.3.0.tgz?cache=0&sync_timestamp=1574807785634&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" 40 | integrity sha1-ReN/s56No/JbruP/U2niu18iAXo= 41 | 42 | acorn@^4.0.4, acorn@~4.0.2: 43 | version "4.0.13" 44 | resolved "https://registry.npm.taobao.org/acorn/download/acorn-4.0.13.tgz?cache=0&sync_timestamp=1574807785634&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" 45 | integrity sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c= 46 | 47 | acorn@^5.0.3: 48 | version "5.7.3" 49 | resolved "https://registry.npm.taobao.org/acorn/download/acorn-5.7.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" 50 | integrity sha1-Z6ojG/iBKXS4UjWpZ3Hra9B+onk= 51 | 52 | align-text@^0.1.1, align-text@^0.1.3: 53 | version "0.1.4" 54 | resolved "https://registry.npm.taobao.org/align-text/download/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" 55 | integrity sha1-DNkKVhCT810KmSVsIrcGlDP60Rc= 56 | dependencies: 57 | kind-of "^3.0.2" 58 | longest "^1.0.1" 59 | repeat-string "^1.5.2" 60 | 61 | ansi-align@^2.0.0: 62 | version "2.0.0" 63 | resolved "https://registry.npm.taobao.org/ansi-align/download/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" 64 | integrity sha1-w2rsy6VjuJzrVW82kPCx2eNUf38= 65 | dependencies: 66 | string-width "^2.0.0" 67 | 68 | ansi-regex@^2.0.0: 69 | version "2.1.1" 70 | resolved "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 71 | integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= 72 | 73 | ansi-regex@^3.0.0: 74 | version "3.0.0" 75 | resolved "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" 76 | integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= 77 | 78 | ansi-styles@^3.2.1: 79 | version "3.2.1" 80 | resolved "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1573557628456&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 81 | integrity sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0= 82 | dependencies: 83 | color-convert "^1.9.0" 84 | 85 | any-promise@^1.0.0, any-promise@^1.1.0: 86 | version "1.3.0" 87 | resolved "https://registry.npm.taobao.org/any-promise/download/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" 88 | integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= 89 | 90 | anymatch@^2.0.0: 91 | version "2.0.0" 92 | resolved "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" 93 | integrity sha1-vLJLTzeTTZqnrBe0ra+J58du8us= 94 | dependencies: 95 | micromatch "^3.1.4" 96 | normalize-path "^2.1.1" 97 | 98 | aproba@^1.0.3: 99 | version "1.2.0" 100 | resolved "https://registry.npm.taobao.org/aproba/download/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" 101 | integrity sha1-aALmJk79GMeQobDVF/DyYnvyyUo= 102 | 103 | are-we-there-yet@~1.1.2: 104 | version "1.1.5" 105 | resolved "https://registry.npm.taobao.org/are-we-there-yet/download/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" 106 | integrity sha1-SzXClE8GKov82mZBB2A1D+nd/CE= 107 | dependencies: 108 | delegates "^1.0.0" 109 | readable-stream "^2.0.6" 110 | 111 | arr-diff@^4.0.0: 112 | version "4.0.0" 113 | resolved "https://registry.npm.taobao.org/arr-diff/download/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" 114 | integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= 115 | 116 | arr-flatten@^1.1.0: 117 | version "1.1.0" 118 | resolved "https://registry.npm.taobao.org/arr-flatten/download/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" 119 | integrity sha1-NgSLv/TntH4TZkQxbJlmnqWukfE= 120 | 121 | arr-union@^3.1.0: 122 | version "3.1.0" 123 | resolved "https://registry.npm.taobao.org/arr-union/download/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" 124 | integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= 125 | 126 | array-unique@^0.3.2: 127 | version "0.3.2" 128 | resolved "https://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" 129 | integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= 130 | 131 | art-template@^4.13.2: 132 | version "4.13.2" 133 | resolved "https://registry.npm.taobao.org/art-template/download/art-template-4.13.2.tgz#4c4cbd44de08aad031660240871f45c7d737cfc1" 134 | integrity sha1-TEy9RN4IqtAxZgJAhx9Fx9c3z8E= 135 | dependencies: 136 | acorn "^5.0.3" 137 | escodegen "^1.8.1" 138 | estraverse "^4.2.0" 139 | html-minifier "^3.4.3" 140 | is-keyword-js "^1.0.3" 141 | js-tokens "^3.0.1" 142 | merge-source-map "^1.0.3" 143 | source-map "^0.5.6" 144 | 145 | asap@~2.0.3: 146 | version "2.0.6" 147 | resolved "https://registry.npm.taobao.org/asap/download/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" 148 | integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= 149 | 150 | assign-symbols@^1.0.0: 151 | version "1.0.0" 152 | resolved "https://registry.npm.taobao.org/assign-symbols/download/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" 153 | integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= 154 | 155 | async-each@^1.0.1: 156 | version "1.0.3" 157 | resolved "https://registry.npm.taobao.org/async-each/download/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" 158 | integrity sha1-tyfb+H12UWAvBvTUrDh/R9kbDL8= 159 | 160 | atob@^2.1.1: 161 | version "2.1.2" 162 | resolved "https://registry.npm.taobao.org/atob/download/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" 163 | integrity sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k= 164 | 165 | babel-runtime@^6.26.0: 166 | version "6.26.0" 167 | resolved "https://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" 168 | integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= 169 | dependencies: 170 | core-js "^2.4.0" 171 | regenerator-runtime "^0.11.0" 172 | 173 | babel-types@^6.26.0: 174 | version "6.26.0" 175 | resolved "https://registry.npm.taobao.org/babel-types/download/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" 176 | integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= 177 | dependencies: 178 | babel-runtime "^6.26.0" 179 | esutils "^2.0.2" 180 | lodash "^4.17.4" 181 | to-fast-properties "^1.0.3" 182 | 183 | babylon@^6.18.0: 184 | version "6.18.0" 185 | resolved "https://registry.npm.taobao.org/babylon/download/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" 186 | integrity sha1-ry87iPpvXB5MY00aD46sT1WzleM= 187 | 188 | balanced-match@^1.0.0: 189 | version "1.0.0" 190 | resolved "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 191 | integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= 192 | 193 | base@^0.11.1: 194 | version "0.11.2" 195 | resolved "https://registry.npm.taobao.org/base/download/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" 196 | integrity sha1-e95c7RRbbVUakNuH+DxVi060io8= 197 | dependencies: 198 | cache-base "^1.0.1" 199 | class-utils "^0.3.5" 200 | component-emitter "^1.2.1" 201 | define-property "^1.0.0" 202 | isobject "^3.0.1" 203 | mixin-deep "^1.2.0" 204 | pascalcase "^0.1.1" 205 | 206 | binary-extensions@^1.0.0: 207 | version "1.13.1" 208 | resolved "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" 209 | integrity sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U= 210 | 211 | bluebird@3.5.1: 212 | version "3.5.1" 213 | resolved "https://registry.npm.taobao.org/bluebird/download/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" 214 | integrity sha1-2VUfnemPH82h5oPRfukaBgLuLrk= 215 | 216 | bluebird@^3.1.1: 217 | version "3.7.2" 218 | resolved "https://registry.npm.taobao.org/bluebird/download/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" 219 | integrity sha1-nyKcFb4nJFT/qXOs4NvueaGww28= 220 | 221 | boxen@^1.2.1: 222 | version "1.3.0" 223 | resolved "https://registry.npm.taobao.org/boxen/download/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" 224 | integrity sha1-VcbDmouljZxhrSLNh3Uy3rZlogs= 225 | dependencies: 226 | ansi-align "^2.0.0" 227 | camelcase "^4.0.0" 228 | chalk "^2.0.1" 229 | cli-boxes "^1.0.0" 230 | string-width "^2.0.0" 231 | term-size "^1.2.0" 232 | widest-line "^2.0.0" 233 | 234 | brace-expansion@^1.1.7: 235 | version "1.1.11" 236 | resolved "https://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 237 | integrity sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0= 238 | dependencies: 239 | balanced-match "^1.0.0" 240 | concat-map "0.0.1" 241 | 242 | braces@^2.3.1, braces@^2.3.2: 243 | version "2.3.2" 244 | resolved "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" 245 | integrity sha1-WXn9PxTNUxVl5fot8av/8d+u5yk= 246 | dependencies: 247 | arr-flatten "^1.1.0" 248 | array-unique "^0.3.2" 249 | extend-shallow "^2.0.1" 250 | fill-range "^4.0.0" 251 | isobject "^3.0.1" 252 | repeat-element "^1.1.2" 253 | snapdragon "^0.8.1" 254 | snapdragon-node "^2.0.1" 255 | split-string "^3.0.2" 256 | to-regex "^3.0.1" 257 | 258 | bson@^1.1.1, bson@~1.1.1: 259 | version "1.1.3" 260 | resolved "https://registry.npm.taobao.org/bson/download/bson-1.1.3.tgz#aa82cb91f9a453aaa060d6209d0675114a8154d3" 261 | integrity sha1-qoLLkfmkU6qgYNYgnQZ1EUqBVNM= 262 | 263 | bytes@3.1.0, bytes@^3.1.0: 264 | version "3.1.0" 265 | resolved "https://registry.npm.taobao.org/bytes/download/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" 266 | integrity sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY= 267 | 268 | cache-base@^1.0.1: 269 | version "1.0.1" 270 | resolved "https://registry.npm.taobao.org/cache-base/download/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" 271 | integrity sha1-Cn9GQWgxyLZi7jb+TnxZ129marI= 272 | dependencies: 273 | collection-visit "^1.0.0" 274 | component-emitter "^1.2.1" 275 | get-value "^2.0.6" 276 | has-value "^1.0.0" 277 | isobject "^3.0.1" 278 | set-value "^2.0.0" 279 | to-object-path "^0.3.0" 280 | union-value "^1.0.0" 281 | unset-value "^1.0.0" 282 | 283 | cache-content-type@^1.0.0: 284 | version "1.0.1" 285 | resolved "https://registry.npm.taobao.org/cache-content-type/download/cache-content-type-1.0.1.tgz#035cde2b08ee2129f4a8315ea8f00a00dba1453c" 286 | integrity sha1-A1zeKwjuISn0qDFeqPAKANuhRTw= 287 | dependencies: 288 | mime-types "^2.1.18" 289 | ylru "^1.2.0" 290 | 291 | camel-case@3.0.x: 292 | version "3.0.0" 293 | resolved "https://registry.npm.taobao.org/camel-case/download/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" 294 | integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M= 295 | dependencies: 296 | no-case "^2.2.0" 297 | upper-case "^1.1.1" 298 | 299 | camelcase@^1.0.2: 300 | version "1.2.1" 301 | resolved "https://registry.npm.taobao.org/camelcase/download/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" 302 | integrity sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk= 303 | 304 | camelcase@^4.0.0: 305 | version "4.1.0" 306 | resolved "https://registry.npm.taobao.org/camelcase/download/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" 307 | integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= 308 | 309 | capture-stack-trace@^1.0.0: 310 | version "1.0.1" 311 | resolved "https://registry.npm.taobao.org/capture-stack-trace/download/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d" 312 | integrity sha1-psC74fOPOqC5Ijjstv9Cw0TUE10= 313 | 314 | center-align@^0.1.1: 315 | version "0.1.3" 316 | resolved "https://registry.npm.taobao.org/center-align/download/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" 317 | integrity sha1-qg0yYptu6XIgBBHL1EYckHvCt60= 318 | dependencies: 319 | align-text "^0.1.3" 320 | lazy-cache "^1.0.3" 321 | 322 | chalk@^2.0.1, chalk@^2.4.2: 323 | version "2.4.2" 324 | resolved "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz?cache=0&sync_timestamp=1573282918610&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 325 | integrity sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ= 326 | dependencies: 327 | ansi-styles "^3.2.1" 328 | escape-string-regexp "^1.0.5" 329 | supports-color "^5.3.0" 330 | 331 | character-parser@^2.1.1: 332 | version "2.2.0" 333 | resolved "https://registry.npm.taobao.org/character-parser/download/character-parser-2.2.0.tgz#c7ce28f36d4bcd9744e5ffc2c5fcde1c73261fc0" 334 | integrity sha1-x84o821LzZdE5f/CxfzeHHMmH8A= 335 | dependencies: 336 | is-regex "^1.0.3" 337 | 338 | chokidar@^2.1.8: 339 | version "2.1.8" 340 | resolved "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" 341 | integrity sha1-gEs6e2qZNYw8XGHnHYco8EHP+Rc= 342 | dependencies: 343 | anymatch "^2.0.0" 344 | async-each "^1.0.1" 345 | braces "^2.3.2" 346 | glob-parent "^3.1.0" 347 | inherits "^2.0.3" 348 | is-binary-path "^1.0.0" 349 | is-glob "^4.0.0" 350 | normalize-path "^3.0.0" 351 | path-is-absolute "^1.0.0" 352 | readdirp "^2.2.1" 353 | upath "^1.1.1" 354 | optionalDependencies: 355 | fsevents "^1.2.7" 356 | 357 | chownr@^1.1.1: 358 | version "1.1.3" 359 | resolved "https://registry.npm.taobao.org/chownr/download/chownr-1.1.3.tgz#42d837d5239688d55f303003a508230fa6727142" 360 | integrity sha1-Qtg31SOWiNVfMDADpQgjD6ZycUI= 361 | 362 | ci-info@^1.5.0: 363 | version "1.6.0" 364 | resolved "https://registry.npm.taobao.org/ci-info/download/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" 365 | integrity sha1-LKINu5zrMtRSSmgzAzE/AwSx5Jc= 366 | 367 | class-utils@^0.3.5: 368 | version "0.3.6" 369 | resolved "https://registry.npm.taobao.org/class-utils/download/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" 370 | integrity sha1-+TNprouafOAv1B+q0MqDAzGQxGM= 371 | dependencies: 372 | arr-union "^3.1.0" 373 | define-property "^0.2.5" 374 | isobject "^3.0.0" 375 | static-extend "^0.1.1" 376 | 377 | clean-css@4.2.x, clean-css@^4.1.11: 378 | version "4.2.1" 379 | resolved "https://registry.npm.taobao.org/clean-css/download/clean-css-4.2.1.tgz#2d411ef76b8569b6d0c84068dabe85b0aa5e5c17" 380 | integrity sha1-LUEe92uFabbQyEBo2r6FsKpeXBc= 381 | dependencies: 382 | source-map "~0.6.0" 383 | 384 | cli-boxes@^1.0.0: 385 | version "1.0.0" 386 | resolved "https://registry.npm.taobao.org/cli-boxes/download/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" 387 | integrity sha1-T6kXw+WclKAEzWH47lCdplFocUM= 388 | 389 | cliui@^2.1.0: 390 | version "2.1.0" 391 | resolved "https://registry.npm.taobao.org/cliui/download/cliui-2.1.0.tgz?cache=0&sync_timestamp=1573943458671&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcliui%2Fdownload%2Fcliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" 392 | integrity sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE= 393 | dependencies: 394 | center-align "^0.1.1" 395 | right-align "^0.1.1" 396 | wordwrap "0.0.2" 397 | 398 | co-body@^6.0.0: 399 | version "6.0.0" 400 | resolved "https://registry.npm.taobao.org/co-body/download/co-body-6.0.0.tgz#965b9337d7f5655480787471f4237664820827e3" 401 | integrity sha1-lluTN9f1ZVSAeHRx9CN2ZIIIJ+M= 402 | dependencies: 403 | inflation "^2.0.0" 404 | qs "^6.5.2" 405 | raw-body "^2.3.3" 406 | type-is "^1.6.16" 407 | 408 | co@^4.6.0: 409 | version "4.6.0" 410 | resolved "https://registry.npm.taobao.org/co/download/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" 411 | integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= 412 | 413 | code-point-at@^1.0.0: 414 | version "1.1.0" 415 | resolved "https://registry.npm.taobao.org/code-point-at/download/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 416 | integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= 417 | 418 | collection-visit@^1.0.0: 419 | version "1.0.0" 420 | resolved "https://registry.npm.taobao.org/collection-visit/download/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" 421 | integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= 422 | dependencies: 423 | map-visit "^1.0.0" 424 | object-visit "^1.0.0" 425 | 426 | color-convert@^1.9.0: 427 | version "1.9.3" 428 | resolved "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 429 | integrity sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg= 430 | dependencies: 431 | color-name "1.1.3" 432 | 433 | color-name@1.1.3: 434 | version "1.1.3" 435 | resolved "https://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 436 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 437 | 438 | commander@2.17.x: 439 | version "2.17.1" 440 | resolved "https://registry.npm.taobao.org/commander/download/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" 441 | integrity sha1-vXerfebelCBc6sxy8XFtKfIKd78= 442 | 443 | commander@^2.19.0: 444 | version "2.20.3" 445 | resolved "https://registry.npm.taobao.org/commander/download/commander-2.20.3.tgz?cache=0&sync_timestamp=1573464045808&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" 446 | integrity sha1-/UhehMA+tIgcIHIrpIA16FMa6zM= 447 | 448 | commander@~2.19.0: 449 | version "2.19.0" 450 | resolved "https://registry.npm.taobao.org/commander/download/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" 451 | integrity sha1-9hmKqE5bg8RgVLlN3tv+1e6f8So= 452 | 453 | component-emitter@^1.2.1: 454 | version "1.3.0" 455 | resolved "https://registry.npm.taobao.org/component-emitter/download/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" 456 | integrity sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A= 457 | 458 | concat-map@0.0.1: 459 | version "0.0.1" 460 | resolved "https://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 461 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 462 | 463 | condense-newlines@^0.2.1: 464 | version "0.2.1" 465 | resolved "https://registry.npm.taobao.org/condense-newlines/download/condense-newlines-0.2.1.tgz#3de985553139475d32502c83b02f60684d24c55f" 466 | integrity sha1-PemFVTE5R10yUCyDsC9gaE0kxV8= 467 | dependencies: 468 | extend-shallow "^2.0.1" 469 | is-whitespace "^0.3.0" 470 | kind-of "^3.0.2" 471 | 472 | config-chain@^1.1.12: 473 | version "1.1.12" 474 | resolved "https://registry.npm.taobao.org/config-chain/download/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" 475 | integrity sha1-D96NCRIA616AjK8l/mGMAvSOTvo= 476 | dependencies: 477 | ini "^1.3.4" 478 | proto-list "~1.2.1" 479 | 480 | configstore@^3.0.0: 481 | version "3.1.2" 482 | resolved "https://registry.npm.taobao.org/configstore/download/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f" 483 | integrity sha1-xvJd767vJt8S3TNBSwAf6BpUP48= 484 | dependencies: 485 | dot-prop "^4.1.0" 486 | graceful-fs "^4.1.2" 487 | make-dir "^1.0.0" 488 | unique-string "^1.0.0" 489 | write-file-atomic "^2.0.0" 490 | xdg-basedir "^3.0.0" 491 | 492 | console-control-strings@^1.0.0, console-control-strings@~1.1.0: 493 | version "1.1.0" 494 | resolved "https://registry.npm.taobao.org/console-control-strings/download/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" 495 | integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= 496 | 497 | consolidate@0.15.1: 498 | version "0.15.1" 499 | resolved "https://registry.npm.taobao.org/consolidate/download/consolidate-0.15.1.tgz#21ab043235c71a07d45d9aad98593b0dba56bab7" 500 | integrity sha1-IasEMjXHGgfUXZqtmFk7DbpWurc= 501 | dependencies: 502 | bluebird "^3.1.1" 503 | 504 | constantinople@^3.0.1, constantinople@^3.1.2: 505 | version "3.1.2" 506 | resolved "https://registry.npm.taobao.org/constantinople/download/constantinople-3.1.2.tgz#d45ed724f57d3d10500017a7d3a889c1381ae647" 507 | integrity sha1-1F7XJPV9PRBQABen06iJwTga5kc= 508 | dependencies: 509 | "@types/babel-types" "^7.0.0" 510 | "@types/babylon" "^6.16.2" 511 | babel-types "^6.26.0" 512 | babylon "^6.18.0" 513 | 514 | content-disposition@~0.5.2: 515 | version "0.5.3" 516 | resolved "https://registry.npm.taobao.org/content-disposition/download/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" 517 | integrity sha1-4TDK9+cnkIfFYWwgB9BIVpiYT70= 518 | dependencies: 519 | safe-buffer "5.1.2" 520 | 521 | content-type@^1.0.4: 522 | version "1.0.4" 523 | resolved "https://registry.npm.taobao.org/content-type/download/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" 524 | integrity sha1-4TjMdeBAxyexlm/l5fjJruJW/js= 525 | 526 | cookies@~0.8.0: 527 | version "0.8.0" 528 | resolved "https://registry.npm.taobao.org/cookies/download/cookies-0.8.0.tgz?cache=0&sync_timestamp=1570851324736&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcookies%2Fdownload%2Fcookies-0.8.0.tgz#1293ce4b391740a8406e3c9870e828c4b54f3f90" 529 | integrity sha1-EpPOSzkXQKhAbjyYcOgoxLVPP5A= 530 | dependencies: 531 | depd "~2.0.0" 532 | keygrip "~1.1.0" 533 | 534 | copy-descriptor@^0.1.0: 535 | version "0.1.1" 536 | resolved "https://registry.npm.taobao.org/copy-descriptor/download/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" 537 | integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= 538 | 539 | copy-to@^2.0.1: 540 | version "2.0.1" 541 | resolved "https://registry.npm.taobao.org/copy-to/download/copy-to-2.0.1.tgz#2680fbb8068a48d08656b6098092bdafc906f4a5" 542 | integrity sha1-JoD7uAaKSNCGVrYJgJK9r8kG9KU= 543 | 544 | core-js@^2.4.0: 545 | version "2.6.10" 546 | resolved "https://registry.npm.taobao.org/core-js/download/core-js-2.6.10.tgz?cache=0&sync_timestamp=1574892698770&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.10.tgz#8a5b8391f8cc7013da703411ce5b585706300d7f" 547 | integrity sha1-iluDkfjMcBPacDQRzltYVwYwDX8= 548 | 549 | core-util-is@~1.0.0: 550 | version "1.0.2" 551 | resolved "https://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 552 | integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= 553 | 554 | create-error-class@^3.0.0: 555 | version "3.0.2" 556 | resolved "https://registry.npm.taobao.org/create-error-class/download/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" 557 | integrity sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y= 558 | dependencies: 559 | capture-stack-trace "^1.0.0" 560 | 561 | cross-spawn@^5.0.1: 562 | version "5.1.0" 563 | 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#e8bd0efee58fcff6f8f94510a0a554bbfa235449" 564 | integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= 565 | dependencies: 566 | lru-cache "^4.0.1" 567 | shebang-command "^1.2.0" 568 | which "^1.2.9" 569 | 570 | crypto-random-string@^1.0.0: 571 | version "1.0.0" 572 | resolved "https://registry.npm.taobao.org/crypto-random-string/download/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" 573 | integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4= 574 | 575 | debug@3.1.0, debug@~3.1.0: 576 | version "3.1.0" 577 | resolved "https://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" 578 | integrity sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE= 579 | dependencies: 580 | ms "2.0.0" 581 | 582 | debug@^2.2.0, debug@^2.3.3, debug@^2.6.1: 583 | version "2.6.9" 584 | resolved "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 585 | integrity sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8= 586 | dependencies: 587 | ms "2.0.0" 588 | 589 | debug@^3.1.0, debug@^3.2.6: 590 | version "3.2.6" 591 | resolved "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" 592 | integrity sha1-6D0X3hbYp++3cX7b5fsQE17uYps= 593 | dependencies: 594 | ms "^2.1.1" 595 | 596 | debug@^4.1.0, debug@^4.1.1: 597 | version "4.1.1" 598 | resolved "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" 599 | integrity sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E= 600 | dependencies: 601 | ms "^2.1.1" 602 | 603 | decamelize@^1.0.0: 604 | version "1.2.0" 605 | resolved "https://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 606 | integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= 607 | 608 | decode-uri-component@^0.2.0: 609 | version "0.2.0" 610 | resolved "https://registry.npm.taobao.org/decode-uri-component/download/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" 611 | integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= 612 | 613 | deep-equal@~1.0.1: 614 | version "1.0.1" 615 | resolved "https://registry.npm.taobao.org/deep-equal/download/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" 616 | integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU= 617 | 618 | deep-extend@^0.6.0: 619 | version "0.6.0" 620 | resolved "https://registry.npm.taobao.org/deep-extend/download/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" 621 | integrity sha1-xPp8lUBKF6nD6Mp+FTcxK3NjMKw= 622 | 623 | deep-is@~0.1.3: 624 | version "0.1.3" 625 | resolved "https://registry.npm.taobao.org/deep-is/download/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" 626 | integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= 627 | 628 | define-property@^0.2.5: 629 | version "0.2.5" 630 | resolved "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" 631 | integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= 632 | dependencies: 633 | is-descriptor "^0.1.0" 634 | 635 | define-property@^1.0.0: 636 | version "1.0.0" 637 | resolved "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" 638 | integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= 639 | dependencies: 640 | is-descriptor "^1.0.0" 641 | 642 | define-property@^2.0.2: 643 | version "2.0.2" 644 | resolved "https://registry.npm.taobao.org/define-property/download/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" 645 | integrity sha1-1Flono1lS6d+AqgX+HENcCyxbp0= 646 | dependencies: 647 | is-descriptor "^1.0.2" 648 | isobject "^3.0.1" 649 | 650 | delegates@^1.0.0: 651 | version "1.0.0" 652 | resolved "https://registry.npm.taobao.org/delegates/download/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" 653 | integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= 654 | 655 | depd@^1.1.2, depd@~1.1.2: 656 | version "1.1.2" 657 | resolved "https://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" 658 | integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= 659 | 660 | depd@~2.0.0: 661 | version "2.0.0" 662 | resolved "https://registry.npm.taobao.org/depd/download/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" 663 | integrity sha1-tpYWPMdXVg0JzyLMj60Vcbeedt8= 664 | 665 | destroy@^1.0.4: 666 | version "1.0.4" 667 | resolved "https://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" 668 | integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= 669 | 670 | detect-libc@^1.0.2: 671 | version "1.0.3" 672 | resolved "https://registry.npm.taobao.org/detect-libc/download/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" 673 | integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= 674 | 675 | doctypes@^1.1.0: 676 | version "1.1.0" 677 | resolved "https://registry.npm.taobao.org/doctypes/download/doctypes-1.1.0.tgz#ea80b106a87538774e8a3a4a5afe293de489e0a9" 678 | integrity sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk= 679 | 680 | dot-prop@^4.1.0: 681 | version "4.2.0" 682 | resolved "https://registry.npm.taobao.org/dot-prop/download/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" 683 | integrity sha1-HxngwuGqDjJ5fEl5nyg3rGr2nFc= 684 | dependencies: 685 | is-obj "^1.0.0" 686 | 687 | duplexer3@^0.1.4: 688 | version "0.1.4" 689 | resolved "https://registry.npm.taobao.org/duplexer3/download/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" 690 | integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= 691 | 692 | editorconfig@^0.15.3: 693 | version "0.15.3" 694 | resolved "https://registry.npm.taobao.org/editorconfig/download/editorconfig-0.15.3.tgz#bef84c4e75fb8dcb0ce5cee8efd51c15999befc5" 695 | integrity sha1-vvhMTnX7jcsM5c7o79UcFZmb78U= 696 | dependencies: 697 | commander "^2.19.0" 698 | lru-cache "^4.1.5" 699 | semver "^5.6.0" 700 | sigmund "^1.0.1" 701 | 702 | ee-first@1.1.1: 703 | version "1.1.1" 704 | resolved "https://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 705 | integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= 706 | 707 | encodeurl@^1.0.2: 708 | version "1.0.2" 709 | resolved "https://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" 710 | integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= 711 | 712 | error-inject@^1.0.0: 713 | version "1.0.0" 714 | resolved "https://registry.npm.taobao.org/error-inject/download/error-inject-1.0.0.tgz#e2b3d91b54aed672f309d950d154850fa11d4f37" 715 | integrity sha1-4rPZG1Su1nLzCdlQ0VSFD6EdTzc= 716 | 717 | escape-html@^1.0.3: 718 | version "1.0.3" 719 | resolved "https://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" 720 | integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= 721 | 722 | escape-string-regexp@^1.0.5: 723 | version "1.0.5" 724 | resolved "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 725 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 726 | 727 | escodegen@^1.8.1: 728 | version "1.12.0" 729 | resolved "https://registry.npm.taobao.org/escodegen/download/escodegen-1.12.0.tgz#f763daf840af172bb3a2b6dd7219c0e17f7ff541" 730 | integrity sha1-92Pa+ECvFyuzorbdchnA4X9/9UE= 731 | dependencies: 732 | esprima "^3.1.3" 733 | estraverse "^4.2.0" 734 | esutils "^2.0.2" 735 | optionator "^0.8.1" 736 | optionalDependencies: 737 | source-map "~0.6.1" 738 | 739 | esprima@^3.1.3: 740 | version "3.1.3" 741 | resolved "https://registry.npm.taobao.org/esprima/download/esprima-3.1.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fesprima%2Fdownload%2Fesprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" 742 | integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM= 743 | 744 | estraverse@^4.2.0: 745 | version "4.3.0" 746 | resolved "https://registry.npm.taobao.org/estraverse/download/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" 747 | integrity sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0= 748 | 749 | esutils@^2.0.2: 750 | version "2.0.3" 751 | resolved "https://registry.npm.taobao.org/esutils/download/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" 752 | integrity sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q= 753 | 754 | execa@^0.7.0: 755 | version "0.7.0" 756 | resolved "https://registry.npm.taobao.org/execa/download/execa-0.7.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" 757 | integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= 758 | dependencies: 759 | cross-spawn "^5.0.1" 760 | get-stream "^3.0.0" 761 | is-stream "^1.1.0" 762 | npm-run-path "^2.0.0" 763 | p-finally "^1.0.0" 764 | signal-exit "^3.0.0" 765 | strip-eof "^1.0.0" 766 | 767 | expand-brackets@^2.1.4: 768 | version "2.1.4" 769 | resolved "https://registry.npm.taobao.org/expand-brackets/download/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" 770 | integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= 771 | dependencies: 772 | debug "^2.3.3" 773 | define-property "^0.2.5" 774 | extend-shallow "^2.0.1" 775 | posix-character-classes "^0.1.0" 776 | regex-not "^1.0.0" 777 | snapdragon "^0.8.1" 778 | to-regex "^3.0.1" 779 | 780 | extend-shallow@^2.0.1: 781 | version "2.0.1" 782 | resolved "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" 783 | integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= 784 | dependencies: 785 | is-extendable "^0.1.0" 786 | 787 | extend-shallow@^3.0.0, extend-shallow@^3.0.2: 788 | version "3.0.2" 789 | resolved "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" 790 | integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= 791 | dependencies: 792 | assign-symbols "^1.0.0" 793 | is-extendable "^1.0.1" 794 | 795 | extglob@^2.0.4: 796 | version "2.0.4" 797 | resolved "https://registry.npm.taobao.org/extglob/download/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" 798 | integrity sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM= 799 | dependencies: 800 | array-unique "^0.3.2" 801 | define-property "^1.0.0" 802 | expand-brackets "^2.1.4" 803 | extend-shallow "^2.0.1" 804 | fragment-cache "^0.2.1" 805 | regex-not "^1.0.0" 806 | snapdragon "^0.8.1" 807 | to-regex "^3.0.1" 808 | 809 | fast-levenshtein@~2.0.6: 810 | version "2.0.6" 811 | resolved "https://registry.npm.taobao.org/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 812 | integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= 813 | 814 | fill-range@^4.0.0: 815 | version "4.0.0" 816 | resolved "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" 817 | integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= 818 | dependencies: 819 | extend-shallow "^2.0.1" 820 | is-number "^3.0.0" 821 | repeat-string "^1.6.1" 822 | to-regex-range "^2.1.0" 823 | 824 | for-in@^1.0.2: 825 | version "1.0.2" 826 | resolved "https://registry.npm.taobao.org/for-in/download/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" 827 | integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= 828 | 829 | fragment-cache@^0.2.1: 830 | version "0.2.1" 831 | resolved "https://registry.npm.taobao.org/fragment-cache/download/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" 832 | integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= 833 | dependencies: 834 | map-cache "^0.2.2" 835 | 836 | fresh@~0.5.2: 837 | version "0.5.2" 838 | resolved "https://registry.npm.taobao.org/fresh/download/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" 839 | integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= 840 | 841 | fs-minipass@^1.2.5: 842 | version "1.2.7" 843 | resolved "https://registry.npm.taobao.org/fs-minipass/download/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" 844 | integrity sha1-zP+FcIQef+QmVpPaiJNsVa7X98c= 845 | dependencies: 846 | minipass "^2.6.0" 847 | 848 | fs.realpath@^1.0.0: 849 | version "1.0.0" 850 | resolved "https://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 851 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 852 | 853 | fsevents@^1.2.7: 854 | version "1.2.9" 855 | resolved "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.9.tgz?cache=0&sync_timestamp=1573319474313&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f" 856 | integrity sha1-P17WZYPM1vQAtaANtvfoYTY+OI8= 857 | dependencies: 858 | nan "^2.12.1" 859 | node-pre-gyp "^0.12.0" 860 | 861 | function-bind@^1.1.1: 862 | version "1.1.1" 863 | resolved "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 864 | integrity sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0= 865 | 866 | gauge@~2.7.3: 867 | version "2.7.4" 868 | resolved "https://registry.npm.taobao.org/gauge/download/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" 869 | integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= 870 | dependencies: 871 | aproba "^1.0.3" 872 | console-control-strings "^1.0.0" 873 | has-unicode "^2.0.0" 874 | object-assign "^4.1.0" 875 | signal-exit "^3.0.0" 876 | string-width "^1.0.1" 877 | strip-ansi "^3.0.1" 878 | wide-align "^1.1.0" 879 | 880 | get-paths@0.0.7: 881 | version "0.0.7" 882 | resolved "https://registry.npm.taobao.org/get-paths/download/get-paths-0.0.7.tgz#15331086752077cf130166ccd233a1cdbeefcf38" 883 | integrity sha1-FTMQhnUgd88TAWbM0jOhzb7vzzg= 884 | dependencies: 885 | pify "^4.0.1" 886 | 887 | get-stream@^3.0.0: 888 | version "3.0.0" 889 | resolved "https://registry.npm.taobao.org/get-stream/download/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" 890 | integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= 891 | 892 | get-value@^2.0.3, get-value@^2.0.6: 893 | version "2.0.6" 894 | resolved "https://registry.npm.taobao.org/get-value/download/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" 895 | integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= 896 | 897 | glob-parent@^3.1.0: 898 | version "3.1.0" 899 | resolved "https://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz?cache=0&sync_timestamp=1569109071634&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob-parent%2Fdownload%2Fglob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" 900 | integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= 901 | dependencies: 902 | is-glob "^3.1.0" 903 | path-dirname "^1.0.0" 904 | 905 | glob@^7.1.3: 906 | version "7.1.6" 907 | resolved "https://registry.npm.taobao.org/glob/download/glob-7.1.6.tgz?cache=0&sync_timestamp=1573078079496&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob%2Fdownload%2Fglob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" 908 | integrity sha1-FB8zuBp8JJLhJVlDB0gMRmeSeKY= 909 | dependencies: 910 | fs.realpath "^1.0.0" 911 | inflight "^1.0.4" 912 | inherits "2" 913 | minimatch "^3.0.4" 914 | once "^1.3.0" 915 | path-is-absolute "^1.0.0" 916 | 917 | global-dirs@^0.1.0: 918 | version "0.1.1" 919 | resolved "https://registry.npm.taobao.org/global-dirs/download/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" 920 | integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= 921 | dependencies: 922 | ini "^1.3.4" 923 | 924 | got@^6.7.1: 925 | version "6.7.1" 926 | resolved "https://registry.npm.taobao.org/got/download/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" 927 | integrity sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA= 928 | dependencies: 929 | create-error-class "^3.0.0" 930 | duplexer3 "^0.1.4" 931 | get-stream "^3.0.0" 932 | is-redirect "^1.0.0" 933 | is-retry-allowed "^1.0.0" 934 | is-stream "^1.0.0" 935 | lowercase-keys "^1.0.0" 936 | safe-buffer "^5.0.1" 937 | timed-out "^4.0.0" 938 | unzip-response "^2.0.1" 939 | url-parse-lax "^1.0.0" 940 | 941 | graceful-fs@^4.1.11, graceful-fs@^4.1.2: 942 | version "4.2.3" 943 | resolved "https://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" 944 | integrity sha1-ShL/G2A3bvCYYsIJPt2Qgyi+hCM= 945 | 946 | has-flag@^3.0.0: 947 | version "3.0.0" 948 | resolved "https://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 949 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 950 | 951 | has-unicode@^2.0.0: 952 | version "2.0.1" 953 | resolved "https://registry.npm.taobao.org/has-unicode/download/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" 954 | integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= 955 | 956 | has-value@^0.3.1: 957 | version "0.3.1" 958 | resolved "https://registry.npm.taobao.org/has-value/download/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" 959 | integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= 960 | dependencies: 961 | get-value "^2.0.3" 962 | has-values "^0.1.4" 963 | isobject "^2.0.0" 964 | 965 | has-value@^1.0.0: 966 | version "1.0.0" 967 | resolved "https://registry.npm.taobao.org/has-value/download/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" 968 | integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= 969 | dependencies: 970 | get-value "^2.0.6" 971 | has-values "^1.0.0" 972 | isobject "^3.0.0" 973 | 974 | has-values@^0.1.4: 975 | version "0.1.4" 976 | resolved "https://registry.npm.taobao.org/has-values/download/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" 977 | integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= 978 | 979 | has-values@^1.0.0: 980 | version "1.0.0" 981 | resolved "https://registry.npm.taobao.org/has-values/download/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" 982 | integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= 983 | dependencies: 984 | is-number "^3.0.0" 985 | kind-of "^4.0.0" 986 | 987 | has@^1.0.1: 988 | version "1.0.3" 989 | resolved "https://registry.npm.taobao.org/has/download/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 990 | integrity sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y= 991 | dependencies: 992 | function-bind "^1.1.1" 993 | 994 | he@1.2.x: 995 | version "1.2.0" 996 | resolved "https://registry.npm.taobao.org/he/download/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" 997 | integrity sha1-hK5l+n6vsWX922FWauFLrwVmTw8= 998 | 999 | html-minifier@^3.4.3: 1000 | version "3.5.21" 1001 | resolved "https://registry.npm.taobao.org/html-minifier/download/html-minifier-3.5.21.tgz#d0040e054730e354db008463593194015212d20c" 1002 | integrity sha1-0AQOBUcw41TbAIRjWTGUAVIS0gw= 1003 | dependencies: 1004 | camel-case "3.0.x" 1005 | clean-css "4.2.x" 1006 | commander "2.17.x" 1007 | he "1.2.x" 1008 | param-case "2.1.x" 1009 | relateurl "0.2.x" 1010 | uglify-js "3.4.x" 1011 | 1012 | http-assert@^1.3.0: 1013 | version "1.4.1" 1014 | resolved "https://registry.npm.taobao.org/http-assert/download/http-assert-1.4.1.tgz#c5f725d677aa7e873ef736199b89686cceb37878" 1015 | integrity sha1-xfcl1neqfoc+9zYZm4lobM6zeHg= 1016 | dependencies: 1017 | deep-equal "~1.0.1" 1018 | http-errors "~1.7.2" 1019 | 1020 | http-errors@1.7.3, http-errors@^1.3.1, http-errors@^1.6.3, http-errors@~1.7.2: 1021 | version "1.7.3" 1022 | resolved "https://registry.npm.taobao.org/http-errors/download/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" 1023 | integrity sha1-bGGeT5xgMIw4UZSYwU+7EKrOuwY= 1024 | dependencies: 1025 | depd "~1.1.2" 1026 | inherits "2.0.4" 1027 | setprototypeof "1.1.1" 1028 | statuses ">= 1.5.0 < 2" 1029 | toidentifier "1.0.0" 1030 | 1031 | http-errors@~1.6.2: 1032 | version "1.6.3" 1033 | resolved "https://registry.npm.taobao.org/http-errors/download/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" 1034 | integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= 1035 | dependencies: 1036 | depd "~1.1.2" 1037 | inherits "2.0.3" 1038 | setprototypeof "1.1.0" 1039 | statuses ">= 1.4.0 < 2" 1040 | 1041 | humanize-number@0.0.2: 1042 | version "0.0.2" 1043 | resolved "https://registry.npm.taobao.org/humanize-number/download/humanize-number-0.0.2.tgz#11c0af6a471643633588588048f1799541489c18" 1044 | integrity sha1-EcCvakcWQ2M1iFiASPF5lUFInBg= 1045 | 1046 | iconv-lite@0.4.24, iconv-lite@^0.4.4: 1047 | version "0.4.24" 1048 | resolved "https://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" 1049 | integrity sha1-ICK0sl+93CHS9SSXSkdKr+czkIs= 1050 | dependencies: 1051 | safer-buffer ">= 2.1.2 < 3" 1052 | 1053 | ignore-by-default@^1.0.1: 1054 | version "1.0.1" 1055 | resolved "https://registry.npm.taobao.org/ignore-by-default/download/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" 1056 | integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk= 1057 | 1058 | ignore-walk@^3.0.1: 1059 | version "3.0.3" 1060 | resolved "https://registry.npm.taobao.org/ignore-walk/download/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" 1061 | integrity sha1-AX4kRxhL/q3nwjjkrv3R6PlbHjc= 1062 | dependencies: 1063 | minimatch "^3.0.4" 1064 | 1065 | import-lazy@^2.1.0: 1066 | version "2.1.0" 1067 | resolved "https://registry.npm.taobao.org/import-lazy/download/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" 1068 | integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= 1069 | 1070 | imurmurhash@^0.1.4: 1071 | version "0.1.4" 1072 | resolved "https://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 1073 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= 1074 | 1075 | inflation@^2.0.0: 1076 | version "2.0.0" 1077 | resolved "https://registry.npm.taobao.org/inflation/download/inflation-2.0.0.tgz#8b417e47c28f925a45133d914ca1fd389107f30f" 1078 | integrity sha1-i0F+R8KPklpFEz2RTKH9OJEH8w8= 1079 | 1080 | inflight@^1.0.4: 1081 | version "1.0.6" 1082 | resolved "https://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 1083 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 1084 | dependencies: 1085 | once "^1.3.0" 1086 | wrappy "1" 1087 | 1088 | inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@~2.0.3: 1089 | version "2.0.4" 1090 | resolved "https://registry.npm.taobao.org/inherits/download/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 1091 | integrity sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w= 1092 | 1093 | inherits@2.0.3: 1094 | version "2.0.3" 1095 | resolved "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 1096 | integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= 1097 | 1098 | ini@^1.3.4, ini@~1.3.0: 1099 | version "1.3.5" 1100 | resolved "https://registry.npm.taobao.org/ini/download/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" 1101 | integrity sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc= 1102 | 1103 | is-accessor-descriptor@^0.1.6: 1104 | version "0.1.6" 1105 | resolved "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" 1106 | integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= 1107 | dependencies: 1108 | kind-of "^3.0.2" 1109 | 1110 | is-accessor-descriptor@^1.0.0: 1111 | version "1.0.0" 1112 | resolved "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" 1113 | integrity sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY= 1114 | dependencies: 1115 | kind-of "^6.0.0" 1116 | 1117 | is-binary-path@^1.0.0: 1118 | version "1.0.1" 1119 | resolved "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" 1120 | integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= 1121 | dependencies: 1122 | binary-extensions "^1.0.0" 1123 | 1124 | is-buffer@^1.1.5: 1125 | version "1.1.6" 1126 | resolved "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz?cache=0&sync_timestamp=1569904999656&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-buffer%2Fdownload%2Fis-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" 1127 | integrity sha1-76ouqdqg16suoTqXsritUf776L4= 1128 | 1129 | is-ci@^1.0.10: 1130 | version "1.2.1" 1131 | resolved "https://registry.npm.taobao.org/is-ci/download/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" 1132 | integrity sha1-43ecjuF/zPQoSI9uKBGH8uYyhBw= 1133 | dependencies: 1134 | ci-info "^1.5.0" 1135 | 1136 | is-data-descriptor@^0.1.4: 1137 | version "0.1.4" 1138 | resolved "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" 1139 | integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= 1140 | dependencies: 1141 | kind-of "^3.0.2" 1142 | 1143 | is-data-descriptor@^1.0.0: 1144 | version "1.0.0" 1145 | resolved "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" 1146 | integrity sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc= 1147 | dependencies: 1148 | kind-of "^6.0.0" 1149 | 1150 | is-descriptor@^0.1.0: 1151 | version "0.1.6" 1152 | resolved "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" 1153 | integrity sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco= 1154 | dependencies: 1155 | is-accessor-descriptor "^0.1.6" 1156 | is-data-descriptor "^0.1.4" 1157 | kind-of "^5.0.0" 1158 | 1159 | is-descriptor@^1.0.0, is-descriptor@^1.0.2: 1160 | version "1.0.2" 1161 | resolved "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" 1162 | integrity sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw= 1163 | dependencies: 1164 | is-accessor-descriptor "^1.0.0" 1165 | is-data-descriptor "^1.0.0" 1166 | kind-of "^6.0.2" 1167 | 1168 | is-expression@^3.0.0: 1169 | version "3.0.0" 1170 | resolved "https://registry.npm.taobao.org/is-expression/download/is-expression-3.0.0.tgz#39acaa6be7fd1f3471dc42c7416e61c24317ac9f" 1171 | integrity sha1-Oayqa+f9HzRx3ELHQW5hwkMXrJ8= 1172 | dependencies: 1173 | acorn "~4.0.2" 1174 | object-assign "^4.0.1" 1175 | 1176 | is-extendable@^0.1.0, is-extendable@^0.1.1: 1177 | version "0.1.1" 1178 | resolved "https://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" 1179 | integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= 1180 | 1181 | is-extendable@^1.0.1: 1182 | version "1.0.1" 1183 | resolved "https://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" 1184 | integrity sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ= 1185 | dependencies: 1186 | is-plain-object "^2.0.4" 1187 | 1188 | is-extglob@^2.1.0, is-extglob@^2.1.1: 1189 | version "2.1.1" 1190 | resolved "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 1191 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= 1192 | 1193 | is-fullwidth-code-point@^1.0.0: 1194 | version "1.0.0" 1195 | resolved "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 1196 | integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= 1197 | dependencies: 1198 | number-is-nan "^1.0.0" 1199 | 1200 | is-fullwidth-code-point@^2.0.0: 1201 | version "2.0.0" 1202 | resolved "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 1203 | integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= 1204 | 1205 | is-generator-function@^1.0.7: 1206 | version "1.0.7" 1207 | resolved "https://registry.npm.taobao.org/is-generator-function/download/is-generator-function-1.0.7.tgz#d2132e529bb0000a7f80794d4bdf5cd5e5813522" 1208 | integrity sha1-0hMuUpuwAAp/gHlNS99c1eWBNSI= 1209 | 1210 | is-glob@^3.1.0: 1211 | version "3.1.0" 1212 | resolved "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" 1213 | integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= 1214 | dependencies: 1215 | is-extglob "^2.1.0" 1216 | 1217 | is-glob@^4.0.0: 1218 | version "4.0.1" 1219 | resolved "https://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" 1220 | integrity sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw= 1221 | dependencies: 1222 | is-extglob "^2.1.1" 1223 | 1224 | is-installed-globally@^0.1.0: 1225 | version "0.1.0" 1226 | resolved "https://registry.npm.taobao.org/is-installed-globally/download/is-installed-globally-0.1.0.tgz?cache=0&sync_timestamp=1573232076717&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-installed-globally%2Fdownload%2Fis-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" 1227 | integrity sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA= 1228 | dependencies: 1229 | global-dirs "^0.1.0" 1230 | is-path-inside "^1.0.0" 1231 | 1232 | is-keyword-js@^1.0.3: 1233 | version "1.0.3" 1234 | resolved "https://registry.npm.taobao.org/is-keyword-js/download/is-keyword-js-1.0.3.tgz#ac30dcf35b671f4b27b17f5cb57235126021132d" 1235 | integrity sha1-rDDc81tnH0snsX9ctXI1EmAhEy0= 1236 | 1237 | is-npm@^1.0.0: 1238 | version "1.0.0" 1239 | resolved "https://registry.npm.taobao.org/is-npm/download/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" 1240 | integrity sha1-8vtjpl5JBbQGyGBydloaTceTufQ= 1241 | 1242 | is-number@^3.0.0: 1243 | version "3.0.0" 1244 | resolved "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" 1245 | integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= 1246 | dependencies: 1247 | kind-of "^3.0.2" 1248 | 1249 | is-obj@^1.0.0: 1250 | version "1.0.1" 1251 | resolved "https://registry.npm.taobao.org/is-obj/download/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" 1252 | integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= 1253 | 1254 | is-path-inside@^1.0.0: 1255 | version "1.0.1" 1256 | resolved "https://registry.npm.taobao.org/is-path-inside/download/is-path-inside-1.0.1.tgz?cache=0&sync_timestamp=1569835858319&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-path-inside%2Fdownload%2Fis-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" 1257 | integrity sha1-jvW33lBDej/cprToZe96pVy0gDY= 1258 | dependencies: 1259 | path-is-inside "^1.0.1" 1260 | 1261 | is-plain-object@^2.0.3, is-plain-object@^2.0.4: 1262 | version "2.0.4" 1263 | resolved "https://registry.npm.taobao.org/is-plain-object/download/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" 1264 | integrity sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc= 1265 | dependencies: 1266 | isobject "^3.0.1" 1267 | 1268 | is-promise@^2.0.0: 1269 | version "2.1.0" 1270 | resolved "https://registry.npm.taobao.org/is-promise/download/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" 1271 | integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= 1272 | 1273 | is-redirect@^1.0.0: 1274 | version "1.0.0" 1275 | resolved "https://registry.npm.taobao.org/is-redirect/download/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" 1276 | integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ= 1277 | 1278 | is-regex@^1.0.3: 1279 | version "1.0.4" 1280 | resolved "https://registry.npm.taobao.org/is-regex/download/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" 1281 | integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= 1282 | dependencies: 1283 | has "^1.0.1" 1284 | 1285 | is-retry-allowed@^1.0.0: 1286 | version "1.2.0" 1287 | resolved "https://registry.npm.taobao.org/is-retry-allowed/download/is-retry-allowed-1.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-retry-allowed%2Fdownload%2Fis-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" 1288 | integrity sha1-13hIi9CkZmo76KFIK58rqv7eqLQ= 1289 | 1290 | is-stream@^1.0.0, is-stream@^1.1.0: 1291 | version "1.1.0" 1292 | resolved "https://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 1293 | integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= 1294 | 1295 | is-whitespace@^0.3.0: 1296 | version "0.3.0" 1297 | resolved "https://registry.npm.taobao.org/is-whitespace/download/is-whitespace-0.3.0.tgz#1639ecb1be036aec69a54cbb401cfbed7114ab7f" 1298 | integrity sha1-Fjnssb4DauxppUy7QBz77XEUq38= 1299 | 1300 | is-windows@^1.0.2: 1301 | version "1.0.2" 1302 | resolved "https://registry.npm.taobao.org/is-windows/download/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" 1303 | integrity sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0= 1304 | 1305 | isarray@0.0.1: 1306 | version "0.0.1" 1307 | resolved "https://registry.npm.taobao.org/isarray/download/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" 1308 | integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= 1309 | 1310 | isarray@1.0.0, isarray@~1.0.0: 1311 | version "1.0.0" 1312 | resolved "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 1313 | integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= 1314 | 1315 | isexe@^2.0.0: 1316 | version "2.0.0" 1317 | resolved "https://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 1318 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 1319 | 1320 | isobject@^2.0.0: 1321 | version "2.1.0" 1322 | resolved "https://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" 1323 | integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= 1324 | dependencies: 1325 | isarray "1.0.0" 1326 | 1327 | isobject@^3.0.0, isobject@^3.0.1: 1328 | version "3.0.1" 1329 | resolved "https://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" 1330 | integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= 1331 | 1332 | js-beautify@^1.6.12: 1333 | version "1.10.2" 1334 | resolved "https://registry.npm.taobao.org/js-beautify/download/js-beautify-1.10.2.tgz#88c9099cd6559402b124cfab18754936f8a7b178" 1335 | integrity sha1-iMkJnNZVlAKxJM+rGHVJNvinsXg= 1336 | dependencies: 1337 | config-chain "^1.1.12" 1338 | editorconfig "^0.15.3" 1339 | glob "^7.1.3" 1340 | mkdirp "~0.5.1" 1341 | nopt "~4.0.1" 1342 | 1343 | js-stringify@^1.0.1: 1344 | version "1.0.2" 1345 | resolved "https://registry.npm.taobao.org/js-stringify/download/js-stringify-1.0.2.tgz#1736fddfd9724f28a3682adc6230ae7e4e9679db" 1346 | integrity sha1-Fzb939lyTyijaCrcYjCufk6Weds= 1347 | 1348 | js-tokens@^3.0.1: 1349 | version "3.0.2" 1350 | resolved "https://registry.npm.taobao.org/js-tokens/download/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" 1351 | integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= 1352 | 1353 | json-stringify-safe@5: 1354 | version "5.0.1" 1355 | resolved "https://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" 1356 | integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= 1357 | 1358 | jstransformer@1.0.0: 1359 | version "1.0.0" 1360 | resolved "https://registry.npm.taobao.org/jstransformer/download/jstransformer-1.0.0.tgz#ed8bf0921e2f3f1ed4d5c1a44f68709ed24722c3" 1361 | integrity sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM= 1362 | dependencies: 1363 | is-promise "^2.0.0" 1364 | promise "^7.0.1" 1365 | 1366 | kareem@2.3.1: 1367 | version "2.3.1" 1368 | resolved "https://registry.npm.taobao.org/kareem/download/kareem-2.3.1.tgz?cache=0&sync_timestamp=1566531900680&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fkareem%2Fdownload%2Fkareem-2.3.1.tgz#def12d9c941017fabfb00f873af95e9c99e1be87" 1369 | integrity sha1-3vEtnJQQF/q/sA+HOvlenJnhvoc= 1370 | 1371 | keygrip@~1.1.0: 1372 | version "1.1.0" 1373 | resolved "https://registry.npm.taobao.org/keygrip/download/keygrip-1.1.0.tgz#871b1681d5e159c62a445b0c74b615e0917e7226" 1374 | integrity sha1-hxsWgdXhWcYqRFsMdLYV4JF+ciY= 1375 | dependencies: 1376 | tsscmp "1.0.6" 1377 | 1378 | kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: 1379 | version "3.2.2" 1380 | resolved "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" 1381 | integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= 1382 | dependencies: 1383 | is-buffer "^1.1.5" 1384 | 1385 | kind-of@^4.0.0: 1386 | version "4.0.0" 1387 | resolved "https://registry.npm.taobao.org/kind-of/download/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" 1388 | integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= 1389 | dependencies: 1390 | is-buffer "^1.1.5" 1391 | 1392 | kind-of@^5.0.0: 1393 | version "5.1.0" 1394 | resolved "https://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" 1395 | integrity sha1-cpyR4thXt6QZofmqZWhcTDP1hF0= 1396 | 1397 | kind-of@^6.0.0, kind-of@^6.0.2: 1398 | version "6.0.2" 1399 | resolved "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" 1400 | integrity sha1-ARRrNqYhjmTljzqNZt5df8b20FE= 1401 | 1402 | koa-art-template@^1.1.1: 1403 | version "1.1.1" 1404 | resolved "https://registry.npm.taobao.org/koa-art-template/download/koa-art-template-1.1.1.tgz#69d0cd93154299f0de11704f2b5027ec07b040cf" 1405 | integrity sha1-adDNkxVCmfDeEXBPK1An7AewQM8= 1406 | dependencies: 1407 | debug "^2.6.1" 1408 | 1409 | koa-bodyparser@^4.2.1: 1410 | version "4.2.1" 1411 | resolved "https://registry.npm.taobao.org/koa-bodyparser/download/koa-bodyparser-4.2.1.tgz#4d7dacb5e6db1106649b595d9e5ccb158b6f3b29" 1412 | integrity sha1-TX2stebbEQZkm1ldnlzLFYtvOyk= 1413 | dependencies: 1414 | co-body "^6.0.0" 1415 | copy-to "^2.0.1" 1416 | 1417 | koa-compose@^3.0.0: 1418 | version "3.2.1" 1419 | resolved "https://registry.npm.taobao.org/koa-compose/download/koa-compose-3.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fkoa-compose%2Fdownload%2Fkoa-compose-3.2.1.tgz#a85ccb40b7d986d8e5a345b3a1ace8eabcf54de7" 1420 | integrity sha1-qFzLQLfZhtjlo0Wzoazo6rz1Tec= 1421 | dependencies: 1422 | any-promise "^1.1.0" 1423 | 1424 | koa-compose@^4.1.0: 1425 | version "4.1.0" 1426 | resolved "https://registry.npm.taobao.org/koa-compose/download/koa-compose-4.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fkoa-compose%2Fdownload%2Fkoa-compose-4.1.0.tgz#507306b9371901db41121c812e923d0d67d3e877" 1427 | integrity sha1-UHMGuTcZAdtBEhyBLpI9DWfT6Hc= 1428 | 1429 | koa-convert@^1.2.0: 1430 | version "1.2.0" 1431 | resolved "https://registry.npm.taobao.org/koa-convert/download/koa-convert-1.2.0.tgz#da40875df49de0539098d1700b50820cebcd21d0" 1432 | integrity sha1-2kCHXfSd4FOQmNFwC1CCDOvNIdA= 1433 | dependencies: 1434 | co "^4.6.0" 1435 | koa-compose "^3.0.0" 1436 | 1437 | koa-is-json@1: 1438 | version "1.0.0" 1439 | resolved "https://registry.npm.taobao.org/koa-is-json/download/koa-is-json-1.0.0.tgz#273c07edcdcb8df6a2c1ab7d59ee76491451ec14" 1440 | integrity sha1-JzwH7c3Ljfaiwat9We52SRRR7BQ= 1441 | 1442 | koa-json@^2.0.2: 1443 | version "2.0.2" 1444 | resolved "https://registry.npm.taobao.org/koa-json/download/koa-json-2.0.2.tgz#36af14e6ea1f5d646d7c44a285701c6f85a4fde4" 1445 | integrity sha1-Nq8U5uofXWRtfESihXAcb4Wk/eQ= 1446 | dependencies: 1447 | koa-is-json "1" 1448 | streaming-json-stringify "3" 1449 | 1450 | koa-logger@^3.2.0: 1451 | version "3.2.1" 1452 | resolved "https://registry.npm.taobao.org/koa-logger/download/koa-logger-3.2.1.tgz#ab9db879526db3837cc9ce4fd983c025b1689f22" 1453 | integrity sha1-q524eVJts4N8yc5P2YPAJbFonyI= 1454 | dependencies: 1455 | bytes "^3.1.0" 1456 | chalk "^2.4.2" 1457 | humanize-number "0.0.2" 1458 | passthrough-counter "^1.0.0" 1459 | 1460 | koa-onerror@^4.1.0: 1461 | version "4.1.0" 1462 | resolved "https://registry.npm.taobao.org/koa-onerror/download/koa-onerror-4.1.0.tgz#7949c7651941e67b11813bf1fad03c2d34470b1c" 1463 | integrity sha1-eUnHZRlB5nsRgTvx+tA8LTRHCxw= 1464 | dependencies: 1465 | escape-html "^1.0.3" 1466 | stream-wormhole "^1.1.0" 1467 | 1468 | koa-router@^7.4.0: 1469 | version "7.4.0" 1470 | resolved "https://registry.npm.taobao.org/koa-router/download/koa-router-7.4.0.tgz#aee1f7adc02d5cb31d7d67465c9eacc825e8c5e0" 1471 | integrity sha1-ruH3rcAtXLMdfWdGXJ6syCXoxeA= 1472 | dependencies: 1473 | debug "^3.1.0" 1474 | http-errors "^1.3.1" 1475 | koa-compose "^3.0.0" 1476 | methods "^1.0.1" 1477 | path-to-regexp "^1.1.1" 1478 | urijs "^1.19.0" 1479 | 1480 | koa-send@^5.0.0: 1481 | version "5.0.0" 1482 | resolved "https://registry.npm.taobao.org/koa-send/download/koa-send-5.0.0.tgz#5e8441e07ef55737734d7ced25b842e50646e7eb" 1483 | integrity sha1-XoRB4H71VzdzTXztJbhC5QZG5+s= 1484 | dependencies: 1485 | debug "^3.1.0" 1486 | http-errors "^1.6.3" 1487 | mz "^2.7.0" 1488 | resolve-path "^1.4.0" 1489 | 1490 | koa-static@^5.0.0: 1491 | version "5.0.0" 1492 | resolved "https://registry.npm.taobao.org/koa-static/download/koa-static-5.0.0.tgz#5e92fc96b537ad5219f425319c95b64772776943" 1493 | integrity sha1-XpL8lrU3rVIZ9CUxnJW2R3J3aUM= 1494 | dependencies: 1495 | debug "^3.1.0" 1496 | koa-send "^5.0.0" 1497 | 1498 | koa-views@^6.2.0: 1499 | version "6.2.1" 1500 | resolved "https://registry.npm.taobao.org/koa-views/download/koa-views-6.2.1.tgz#67638e754f9467fcb7ccd6ba601164cb5dadfea8" 1501 | integrity sha1-Z2OOdU+UZ/y3zNa6YBFky12t/qg= 1502 | dependencies: 1503 | consolidate "0.15.1" 1504 | debug "^4.1.0" 1505 | get-paths "0.0.7" 1506 | koa-send "^5.0.0" 1507 | mz "^2.4.0" 1508 | pretty "^2.0.0" 1509 | 1510 | koa2-cors@^2.0.6: 1511 | version "2.0.6" 1512 | resolved "https://registry.npm.taobao.org/koa2-cors/download/koa2-cors-2.0.6.tgz#9ad23df3a0b9bb84530b46f5944f3fb576086554" 1513 | integrity sha1-mtI986C5u4RTC0b1lE8/tXYIZVQ= 1514 | 1515 | koa@^2.7.0: 1516 | version "2.11.0" 1517 | resolved "https://registry.npm.taobao.org/koa/download/koa-2.11.0.tgz?cache=0&sync_timestamp=1572232118391&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fkoa%2Fdownload%2Fkoa-2.11.0.tgz#fe5a51c46f566d27632dd5dc8fd5d7dd44f935a4" 1518 | integrity sha1-/lpRxG9WbSdjLdXcj9XX3UT5NaQ= 1519 | dependencies: 1520 | accepts "^1.3.5" 1521 | cache-content-type "^1.0.0" 1522 | content-disposition "~0.5.2" 1523 | content-type "^1.0.4" 1524 | cookies "~0.8.0" 1525 | debug "~3.1.0" 1526 | delegates "^1.0.0" 1527 | depd "^1.1.2" 1528 | destroy "^1.0.4" 1529 | encodeurl "^1.0.2" 1530 | error-inject "^1.0.0" 1531 | escape-html "^1.0.3" 1532 | fresh "~0.5.2" 1533 | http-assert "^1.3.0" 1534 | http-errors "^1.6.3" 1535 | is-generator-function "^1.0.7" 1536 | koa-compose "^4.1.0" 1537 | koa-convert "^1.2.0" 1538 | on-finished "^2.3.0" 1539 | only "~0.0.2" 1540 | parseurl "^1.3.2" 1541 | statuses "^1.5.0" 1542 | type-is "^1.6.16" 1543 | vary "^1.1.2" 1544 | 1545 | latest-version@^3.0.0: 1546 | version "3.1.0" 1547 | resolved "https://registry.npm.taobao.org/latest-version/download/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" 1548 | integrity sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU= 1549 | dependencies: 1550 | package-json "^4.0.0" 1551 | 1552 | lazy-cache@^1.0.3: 1553 | version "1.0.4" 1554 | resolved "https://registry.npm.taobao.org/lazy-cache/download/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" 1555 | integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4= 1556 | 1557 | levn@~0.3.0: 1558 | version "0.3.0" 1559 | resolved "https://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" 1560 | integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= 1561 | dependencies: 1562 | prelude-ls "~1.1.2" 1563 | type-check "~0.3.2" 1564 | 1565 | lodash@^4.17.4: 1566 | version "4.17.15" 1567 | resolved "https://registry.npm.taobao.org/lodash/download/lodash-4.17.15.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" 1568 | integrity sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg= 1569 | 1570 | longest@^1.0.1: 1571 | version "1.0.1" 1572 | resolved "https://registry.npm.taobao.org/longest/download/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" 1573 | integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc= 1574 | 1575 | lower-case@^1.1.1: 1576 | version "1.1.4" 1577 | resolved "https://registry.npm.taobao.org/lower-case/download/lower-case-1.1.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flower-case%2Fdownload%2Flower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" 1578 | integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= 1579 | 1580 | lowercase-keys@^1.0.0: 1581 | version "1.0.1" 1582 | resolved "https://registry.npm.taobao.org/lowercase-keys/download/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" 1583 | integrity sha1-b54wtHCE2XGnyCD/FabFFnt0wm8= 1584 | 1585 | lru-cache@^4.0.1, lru-cache@^4.1.5: 1586 | version "4.1.5" 1587 | resolved "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" 1588 | integrity sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80= 1589 | dependencies: 1590 | pseudomap "^1.0.2" 1591 | yallist "^2.1.2" 1592 | 1593 | make-dir@^1.0.0: 1594 | version "1.3.0" 1595 | resolved "https://registry.npm.taobao.org/make-dir/download/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" 1596 | integrity sha1-ecEDO4BRW9bSTsmTPoYMp17ifww= 1597 | dependencies: 1598 | pify "^3.0.0" 1599 | 1600 | map-cache@^0.2.2: 1601 | version "0.2.2" 1602 | resolved "https://registry.npm.taobao.org/map-cache/download/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" 1603 | integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= 1604 | 1605 | map-visit@^1.0.0: 1606 | version "1.0.0" 1607 | resolved "https://registry.npm.taobao.org/map-visit/download/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" 1608 | integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= 1609 | dependencies: 1610 | object-visit "^1.0.0" 1611 | 1612 | media-typer@0.3.0: 1613 | version "0.3.0" 1614 | resolved "https://registry.npm.taobao.org/media-typer/download/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" 1615 | integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= 1616 | 1617 | memory-pager@^1.0.2: 1618 | version "1.5.0" 1619 | resolved "https://registry.npm.taobao.org/memory-pager/download/memory-pager-1.5.0.tgz#d8751655d22d384682741c972f2c3d6dfa3e66b5" 1620 | integrity sha1-2HUWVdItOEaCdByXLyw9bfo+ZrU= 1621 | 1622 | merge-source-map@^1.0.3: 1623 | version "1.1.0" 1624 | resolved "https://registry.npm.taobao.org/merge-source-map/download/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" 1625 | integrity sha1-L93n5gIJOfcJBqaPLXrmheTIxkY= 1626 | dependencies: 1627 | source-map "^0.6.1" 1628 | 1629 | methods@^1.0.1: 1630 | version "1.1.2" 1631 | resolved "https://registry.npm.taobao.org/methods/download/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" 1632 | integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= 1633 | 1634 | micromatch@^3.1.10, micromatch@^3.1.4: 1635 | version "3.1.10" 1636 | resolved "https://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" 1637 | integrity sha1-cIWbyVyYQJUvNZoGij/En57PrCM= 1638 | dependencies: 1639 | arr-diff "^4.0.0" 1640 | array-unique "^0.3.2" 1641 | braces "^2.3.1" 1642 | define-property "^2.0.2" 1643 | extend-shallow "^3.0.2" 1644 | extglob "^2.0.4" 1645 | fragment-cache "^0.2.1" 1646 | kind-of "^6.0.2" 1647 | nanomatch "^1.2.9" 1648 | object.pick "^1.3.0" 1649 | regex-not "^1.0.0" 1650 | snapdragon "^0.8.1" 1651 | to-regex "^3.0.2" 1652 | 1653 | mime-db@1.42.0: 1654 | version "1.42.0" 1655 | resolved "https://registry.npm.taobao.org/mime-db/download/mime-db-1.42.0.tgz#3e252907b4c7adb906597b4b65636272cf9e7bac" 1656 | integrity sha1-PiUpB7THrbkGWXtLZWNics+ee6w= 1657 | 1658 | mime-types@^2.1.18, mime-types@~2.1.24: 1659 | version "2.1.25" 1660 | resolved "https://registry.npm.taobao.org/mime-types/download/mime-types-2.1.25.tgz?cache=0&sync_timestamp=1573568362177&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-types%2Fdownload%2Fmime-types-2.1.25.tgz#39772d46621f93e2a80a856c53b86a62156a6437" 1661 | integrity sha1-OXctRmIfk+KoCoVsU7hqYhVqZDc= 1662 | dependencies: 1663 | mime-db "1.42.0" 1664 | 1665 | minimatch@^3.0.4: 1666 | version "3.0.4" 1667 | resolved "https://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 1668 | integrity sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM= 1669 | dependencies: 1670 | brace-expansion "^1.1.7" 1671 | 1672 | minimist@0.0.8: 1673 | version "0.0.8" 1674 | resolved "https://registry.npm.taobao.org/minimist/download/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 1675 | integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= 1676 | 1677 | minimist@^1.2.0: 1678 | version "1.2.0" 1679 | resolved "https://registry.npm.taobao.org/minimist/download/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 1680 | integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= 1681 | 1682 | minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: 1683 | version "2.9.0" 1684 | resolved "https://registry.npm.taobao.org/minipass/download/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" 1685 | integrity sha1-5xN2Ln0+Mv7YAxFc+T4EvKn8yaY= 1686 | dependencies: 1687 | safe-buffer "^5.1.2" 1688 | yallist "^3.0.0" 1689 | 1690 | minizlib@^1.2.1: 1691 | version "1.3.3" 1692 | resolved "https://registry.npm.taobao.org/minizlib/download/minizlib-1.3.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fminizlib%2Fdownload%2Fminizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" 1693 | integrity sha1-IpDeloGKNMKVUcio0wEha9Zahh0= 1694 | dependencies: 1695 | minipass "^2.9.0" 1696 | 1697 | mixin-deep@^1.2.0: 1698 | version "1.3.2" 1699 | resolved "https://registry.npm.taobao.org/mixin-deep/download/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" 1700 | integrity sha1-ESC0PcNZp4Xc5ltVuC4lfM9HlWY= 1701 | dependencies: 1702 | for-in "^1.0.2" 1703 | is-extendable "^1.0.1" 1704 | 1705 | mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1: 1706 | version "0.5.1" 1707 | resolved "https://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 1708 | integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= 1709 | dependencies: 1710 | minimist "0.0.8" 1711 | 1712 | mongodb@3.3.5: 1713 | version "3.3.5" 1714 | resolved "https://registry.npm.taobao.org/mongodb/download/mongodb-3.3.5.tgz#38d531013afede92b0dd282e3b9f3c08c9bdff3b" 1715 | integrity sha1-ONUxATr+3pKw3SguO588CMm9/zs= 1716 | dependencies: 1717 | bson "^1.1.1" 1718 | require_optional "^1.0.1" 1719 | safe-buffer "^5.1.2" 1720 | optionalDependencies: 1721 | saslprep "^1.0.0" 1722 | 1723 | mongoose-legacy-pluralize@1.0.2: 1724 | version "1.0.2" 1725 | resolved "https://registry.npm.taobao.org/mongoose-legacy-pluralize/download/mongoose-legacy-pluralize-1.0.2.tgz#3ba9f91fa507b5186d399fb40854bff18fb563e4" 1726 | integrity sha1-O6n5H6UHtRhtOZ+0CFS/8Y+1Y+Q= 1727 | 1728 | mongoose@^5.7.13: 1729 | version "5.7.13" 1730 | resolved "https://registry.npm.taobao.org/mongoose/download/mongoose-5.7.13.tgz?cache=0&sync_timestamp=1575050476256&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmongoose%2Fdownload%2Fmongoose-5.7.13.tgz#d8ebbc15cfb19d014cf1fbd4b7af413d75952d46" 1731 | integrity sha1-2Ou8Fc+xnQFM8fvUt69BPXWVLUY= 1732 | dependencies: 1733 | bson "~1.1.1" 1734 | kareem "2.3.1" 1735 | mongodb "3.3.5" 1736 | mongoose-legacy-pluralize "1.0.2" 1737 | mpath "0.6.0" 1738 | mquery "3.2.2" 1739 | ms "2.1.2" 1740 | regexp-clone "1.0.0" 1741 | safe-buffer "5.1.2" 1742 | sift "7.0.1" 1743 | sliced "1.0.1" 1744 | 1745 | mpath@0.6.0: 1746 | version "0.6.0" 1747 | resolved "https://registry.npm.taobao.org/mpath/download/mpath-0.6.0.tgz#aa922029fca4f0f641f360e74c5c1b6a4c47078e" 1748 | integrity sha1-qpIgKfyk8PZB82DnTFwbakxHB44= 1749 | 1750 | mquery@3.2.2: 1751 | version "3.2.2" 1752 | resolved "https://registry.npm.taobao.org/mquery/download/mquery-3.2.2.tgz#e1383a3951852ce23e37f619a9b350f1fb3664e7" 1753 | integrity sha1-4Tg6OVGFLOI+N/YZqbNQ8fs2ZOc= 1754 | dependencies: 1755 | bluebird "3.5.1" 1756 | debug "3.1.0" 1757 | regexp-clone "^1.0.0" 1758 | safe-buffer "5.1.2" 1759 | sliced "1.0.1" 1760 | 1761 | ms@2.0.0: 1762 | version "2.0.0" 1763 | resolved "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 1764 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= 1765 | 1766 | ms@2.1.2, ms@^2.1.1: 1767 | version "2.1.2" 1768 | resolved "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 1769 | integrity sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk= 1770 | 1771 | mz@^2.4.0, mz@^2.7.0: 1772 | version "2.7.0" 1773 | resolved "https://registry.npm.taobao.org/mz/download/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" 1774 | integrity sha1-lQCAV6Vsr63CvGPd5/n/aVWUjjI= 1775 | dependencies: 1776 | any-promise "^1.0.0" 1777 | object-assign "^4.0.1" 1778 | thenify-all "^1.0.0" 1779 | 1780 | nan@^2.12.1: 1781 | version "2.14.0" 1782 | resolved "https://registry.npm.taobao.org/nan/download/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" 1783 | integrity sha1-eBj3IgJ7JFmobwKV1DTR/CM2xSw= 1784 | 1785 | nanomatch@^1.2.9: 1786 | version "1.2.13" 1787 | resolved "https://registry.npm.taobao.org/nanomatch/download/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" 1788 | integrity sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk= 1789 | dependencies: 1790 | arr-diff "^4.0.0" 1791 | array-unique "^0.3.2" 1792 | define-property "^2.0.2" 1793 | extend-shallow "^3.0.2" 1794 | fragment-cache "^0.2.1" 1795 | is-windows "^1.0.2" 1796 | kind-of "^6.0.2" 1797 | object.pick "^1.3.0" 1798 | regex-not "^1.0.0" 1799 | snapdragon "^0.8.1" 1800 | to-regex "^3.0.1" 1801 | 1802 | needle@^2.2.1: 1803 | version "2.4.0" 1804 | resolved "https://registry.npm.taobao.org/needle/download/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c" 1805 | integrity sha1-aDPnSXXERGQlkOFadQKIxfk5tXw= 1806 | dependencies: 1807 | debug "^3.2.6" 1808 | iconv-lite "^0.4.4" 1809 | sax "^1.2.4" 1810 | 1811 | negotiator@0.6.2: 1812 | version "0.6.2" 1813 | resolved "https://registry.npm.taobao.org/negotiator/download/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" 1814 | integrity sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs= 1815 | 1816 | no-case@^2.2.0: 1817 | version "2.3.2" 1818 | resolved "https://registry.npm.taobao.org/no-case/download/no-case-2.3.2.tgz?cache=0&sync_timestamp=1575181242933&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fno-case%2Fdownload%2Fno-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" 1819 | integrity sha1-YLgTOWvjmz8SiKTB7V0efSi0ZKw= 1820 | dependencies: 1821 | lower-case "^1.1.1" 1822 | 1823 | node-pre-gyp@^0.12.0: 1824 | version "0.12.0" 1825 | resolved "https://registry.npm.taobao.org/node-pre-gyp/download/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" 1826 | integrity sha1-ObpLsUOdoDApX4meO1ILd4V2YUk= 1827 | dependencies: 1828 | detect-libc "^1.0.2" 1829 | mkdirp "^0.5.1" 1830 | needle "^2.2.1" 1831 | nopt "^4.0.1" 1832 | npm-packlist "^1.1.6" 1833 | npmlog "^4.0.2" 1834 | rc "^1.2.7" 1835 | rimraf "^2.6.1" 1836 | semver "^5.3.0" 1837 | tar "^4" 1838 | 1839 | nodemon@^1.19.1: 1840 | version "1.19.4" 1841 | resolved "https://registry.npm.taobao.org/nodemon/download/nodemon-1.19.4.tgz#56db5c607408e0fdf8920d2b444819af1aae0971" 1842 | integrity sha1-VttcYHQI4P34kg0rREgZrxquCXE= 1843 | dependencies: 1844 | chokidar "^2.1.8" 1845 | debug "^3.2.6" 1846 | ignore-by-default "^1.0.1" 1847 | minimatch "^3.0.4" 1848 | pstree.remy "^1.1.7" 1849 | semver "^5.7.1" 1850 | supports-color "^5.5.0" 1851 | touch "^3.1.0" 1852 | undefsafe "^2.0.2" 1853 | update-notifier "^2.5.0" 1854 | 1855 | nopt@^4.0.1, nopt@~4.0.1: 1856 | version "4.0.1" 1857 | resolved "https://registry.npm.taobao.org/nopt/download/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" 1858 | integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= 1859 | dependencies: 1860 | abbrev "1" 1861 | osenv "^0.1.4" 1862 | 1863 | nopt@~1.0.10: 1864 | version "1.0.10" 1865 | resolved "https://registry.npm.taobao.org/nopt/download/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" 1866 | integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4= 1867 | dependencies: 1868 | abbrev "1" 1869 | 1870 | normalize-path@^2.1.1: 1871 | version "2.1.1" 1872 | resolved "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" 1873 | integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= 1874 | dependencies: 1875 | remove-trailing-separator "^1.0.1" 1876 | 1877 | normalize-path@^3.0.0: 1878 | version "3.0.0" 1879 | resolved "https://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 1880 | integrity sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU= 1881 | 1882 | npm-bundled@^1.0.1: 1883 | version "1.0.6" 1884 | resolved "https://registry.npm.taobao.org/npm-bundled/download/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" 1885 | integrity sha1-57qarc75YrthJI+RchzZMrP+a90= 1886 | 1887 | npm-packlist@^1.1.6: 1888 | version "1.4.6" 1889 | resolved "https://registry.npm.taobao.org/npm-packlist/download/npm-packlist-1.4.6.tgz#53ba3ed11f8523079f1457376dd379ee4ea42ff4" 1890 | integrity sha1-U7o+0R+FIwefFFc3bdN57k6kL/Q= 1891 | dependencies: 1892 | ignore-walk "^3.0.1" 1893 | npm-bundled "^1.0.1" 1894 | 1895 | npm-run-path@^2.0.0: 1896 | version "2.0.2" 1897 | resolved "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-2.0.2.tgz?cache=0&sync_timestamp=1571055779038&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnpm-run-path%2Fdownload%2Fnpm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" 1898 | integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= 1899 | dependencies: 1900 | path-key "^2.0.0" 1901 | 1902 | npmlog@^4.0.2: 1903 | version "4.1.2" 1904 | resolved "https://registry.npm.taobao.org/npmlog/download/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" 1905 | integrity sha1-CKfyqL9zRgR3mp76StXMcXq7lUs= 1906 | dependencies: 1907 | are-we-there-yet "~1.1.2" 1908 | console-control-strings "~1.1.0" 1909 | gauge "~2.7.3" 1910 | set-blocking "~2.0.0" 1911 | 1912 | number-is-nan@^1.0.0: 1913 | version "1.0.1" 1914 | resolved "https://registry.npm.taobao.org/number-is-nan/download/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 1915 | integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= 1916 | 1917 | object-assign@^4.0.1, object-assign@^4.1.0: 1918 | version "4.1.1" 1919 | resolved "https://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 1920 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= 1921 | 1922 | object-copy@^0.1.0: 1923 | version "0.1.0" 1924 | resolved "https://registry.npm.taobao.org/object-copy/download/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" 1925 | integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= 1926 | dependencies: 1927 | copy-descriptor "^0.1.0" 1928 | define-property "^0.2.5" 1929 | kind-of "^3.0.3" 1930 | 1931 | object-visit@^1.0.0: 1932 | version "1.0.1" 1933 | resolved "https://registry.npm.taobao.org/object-visit/download/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" 1934 | integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= 1935 | dependencies: 1936 | isobject "^3.0.0" 1937 | 1938 | object.pick@^1.3.0: 1939 | version "1.3.0" 1940 | resolved "https://registry.npm.taobao.org/object.pick/download/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" 1941 | integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= 1942 | dependencies: 1943 | isobject "^3.0.1" 1944 | 1945 | on-finished@^2.3.0: 1946 | version "2.3.0" 1947 | resolved "https://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" 1948 | integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= 1949 | dependencies: 1950 | ee-first "1.1.1" 1951 | 1952 | once@^1.3.0: 1953 | version "1.4.0" 1954 | resolved "https://registry.npm.taobao.org/once/download/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1955 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 1956 | dependencies: 1957 | wrappy "1" 1958 | 1959 | only@~0.0.2: 1960 | version "0.0.2" 1961 | resolved "https://registry.npm.taobao.org/only/download/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4" 1962 | integrity sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q= 1963 | 1964 | optionator@^0.8.1: 1965 | version "0.8.3" 1966 | resolved "https://registry.npm.taobao.org/optionator/download/optionator-0.8.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Foptionator%2Fdownload%2Foptionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" 1967 | integrity sha1-hPodA2/p08fiHZmIS2ARZ+yPtJU= 1968 | dependencies: 1969 | deep-is "~0.1.3" 1970 | fast-levenshtein "~2.0.6" 1971 | levn "~0.3.0" 1972 | prelude-ls "~1.1.2" 1973 | type-check "~0.3.2" 1974 | word-wrap "~1.2.3" 1975 | 1976 | os-homedir@^1.0.0: 1977 | version "1.0.2" 1978 | resolved "https://registry.npm.taobao.org/os-homedir/download/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" 1979 | integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= 1980 | 1981 | os-tmpdir@^1.0.0: 1982 | version "1.0.2" 1983 | resolved "https://registry.npm.taobao.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 1984 | integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= 1985 | 1986 | osenv@^0.1.4: 1987 | version "0.1.5" 1988 | resolved "https://registry.npm.taobao.org/osenv/download/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" 1989 | integrity sha1-hc36+uso6Gd/QW4odZK18/SepBA= 1990 | dependencies: 1991 | os-homedir "^1.0.0" 1992 | os-tmpdir "^1.0.0" 1993 | 1994 | p-finally@^1.0.0: 1995 | version "1.0.0" 1996 | resolved "https://registry.npm.taobao.org/p-finally/download/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" 1997 | integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= 1998 | 1999 | package-json@^4.0.0: 2000 | version "4.0.1" 2001 | resolved "https://registry.npm.taobao.org/package-json/download/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" 2002 | integrity sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0= 2003 | dependencies: 2004 | got "^6.7.1" 2005 | registry-auth-token "^3.0.1" 2006 | registry-url "^3.0.3" 2007 | semver "^5.1.0" 2008 | 2009 | param-case@2.1.x: 2010 | version "2.1.1" 2011 | resolved "https://registry.npm.taobao.org/param-case/download/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" 2012 | integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc= 2013 | dependencies: 2014 | no-case "^2.2.0" 2015 | 2016 | parseurl@^1.3.2: 2017 | version "1.3.3" 2018 | resolved "https://registry.npm.taobao.org/parseurl/download/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" 2019 | integrity sha1-naGee+6NEt/wUT7Vt2lXeTvC6NQ= 2020 | 2021 | pascalcase@^0.1.1: 2022 | version "0.1.1" 2023 | resolved "https://registry.npm.taobao.org/pascalcase/download/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" 2024 | integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= 2025 | 2026 | passthrough-counter@^1.0.0: 2027 | version "1.0.0" 2028 | resolved "https://registry.npm.taobao.org/passthrough-counter/download/passthrough-counter-1.0.0.tgz#1967d9e66da572b5c023c787db112a387ab166fa" 2029 | integrity sha1-GWfZ5m2lcrXAI8eH2xEqOHqxZvo= 2030 | 2031 | path-dirname@^1.0.0: 2032 | version "1.0.2" 2033 | resolved "https://registry.npm.taobao.org/path-dirname/download/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" 2034 | integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= 2035 | 2036 | path-is-absolute@1.0.1, path-is-absolute@^1.0.0: 2037 | version "1.0.1" 2038 | resolved "https://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 2039 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 2040 | 2041 | path-is-inside@^1.0.1: 2042 | version "1.0.2" 2043 | resolved "https://registry.npm.taobao.org/path-is-inside/download/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" 2044 | integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= 2045 | 2046 | path-key@^2.0.0: 2047 | version "2.0.1" 2048 | resolved "https://registry.npm.taobao.org/path-key/download/path-key-2.0.1.tgz?cache=0&sync_timestamp=1574441520024&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" 2049 | integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= 2050 | 2051 | path-parse@^1.0.6: 2052 | version "1.0.6" 2053 | resolved "https://registry.npm.taobao.org/path-parse/download/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" 2054 | integrity sha1-1i27VnlAXXLEc37FhgDp3c8G0kw= 2055 | 2056 | path-to-regexp@^1.1.1: 2057 | version "1.8.0" 2058 | resolved "https://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-1.8.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-to-regexp%2Fdownload%2Fpath-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" 2059 | integrity sha1-iHs7qdhDk+h6CgufTLdWGYtTVIo= 2060 | dependencies: 2061 | isarray "0.0.1" 2062 | 2063 | pify@^3.0.0: 2064 | version "3.0.0" 2065 | resolved "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" 2066 | integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= 2067 | 2068 | pify@^4.0.1: 2069 | version "4.0.1" 2070 | resolved "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" 2071 | integrity sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE= 2072 | 2073 | posix-character-classes@^0.1.0: 2074 | version "0.1.1" 2075 | resolved "https://registry.npm.taobao.org/posix-character-classes/download/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" 2076 | integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= 2077 | 2078 | prelude-ls@~1.1.2: 2079 | version "1.1.2" 2080 | resolved "https://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" 2081 | integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= 2082 | 2083 | prepend-http@^1.0.1: 2084 | version "1.0.4" 2085 | resolved "https://registry.npm.taobao.org/prepend-http/download/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" 2086 | integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= 2087 | 2088 | pretty@^2.0.0: 2089 | version "2.0.0" 2090 | resolved "https://registry.npm.taobao.org/pretty/download/pretty-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpretty%2Fdownload%2Fpretty-2.0.0.tgz#adbc7960b7bbfe289a557dc5f737619a220d06a5" 2091 | integrity sha1-rbx5YLe7/iiaVX3F9zdhmiINBqU= 2092 | dependencies: 2093 | condense-newlines "^0.2.1" 2094 | extend-shallow "^2.0.1" 2095 | js-beautify "^1.6.12" 2096 | 2097 | process-nextick-args@~2.0.0: 2098 | version "2.0.1" 2099 | resolved "https://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" 2100 | integrity sha1-eCDZsWEgzFXKmud5JoCufbptf+I= 2101 | 2102 | promise@^7.0.1: 2103 | version "7.3.1" 2104 | resolved "https://registry.npm.taobao.org/promise/download/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" 2105 | integrity sha1-BktyYCsY+Q8pGSuLG8QY/9Hr078= 2106 | dependencies: 2107 | asap "~2.0.3" 2108 | 2109 | proto-list@~1.2.1: 2110 | version "1.2.4" 2111 | resolved "https://registry.npm.taobao.org/proto-list/download/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" 2112 | integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= 2113 | 2114 | pseudomap@^1.0.2: 2115 | version "1.0.2" 2116 | resolved "https://registry.npm.taobao.org/pseudomap/download/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" 2117 | integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= 2118 | 2119 | pstree.remy@^1.1.7: 2120 | version "1.1.7" 2121 | resolved "https://registry.npm.taobao.org/pstree.remy/download/pstree.remy-1.1.7.tgz#c76963a28047ed61542dc361aa26ee55a7fa15f3" 2122 | integrity sha1-x2ljooBH7WFULcNhqibuVaf6FfM= 2123 | 2124 | pug-attrs@^2.0.4: 2125 | version "2.0.4" 2126 | resolved "https://registry.npm.taobao.org/pug-attrs/download/pug-attrs-2.0.4.tgz#b2f44c439e4eb4ad5d4ef25cac20d18ad28cc336" 2127 | integrity sha1-svRMQ55OtK1dTvJcrCDRitKMwzY= 2128 | dependencies: 2129 | constantinople "^3.0.1" 2130 | js-stringify "^1.0.1" 2131 | pug-runtime "^2.0.5" 2132 | 2133 | pug-code-gen@^2.0.2: 2134 | version "2.0.2" 2135 | resolved "https://registry.npm.taobao.org/pug-code-gen/download/pug-code-gen-2.0.2.tgz#ad0967162aea077dcf787838d94ed14acb0217c2" 2136 | integrity sha1-rQlnFirqB33PeHg42U7RSssCF8I= 2137 | dependencies: 2138 | constantinople "^3.1.2" 2139 | doctypes "^1.1.0" 2140 | js-stringify "^1.0.1" 2141 | pug-attrs "^2.0.4" 2142 | pug-error "^1.3.3" 2143 | pug-runtime "^2.0.5" 2144 | void-elements "^2.0.1" 2145 | with "^5.0.0" 2146 | 2147 | pug-error@^1.3.3: 2148 | version "1.3.3" 2149 | resolved "https://registry.npm.taobao.org/pug-error/download/pug-error-1.3.3.tgz#f342fb008752d58034c185de03602dd9ffe15fa6" 2150 | integrity sha1-80L7AIdS1YA0wYXeA2At2f/hX6Y= 2151 | 2152 | pug-filters@^3.1.1: 2153 | version "3.1.1" 2154 | resolved "https://registry.npm.taobao.org/pug-filters/download/pug-filters-3.1.1.tgz#ab2cc82db9eeccf578bda89130e252a0db026aa7" 2155 | integrity sha1-qyzILbnuzPV4vaiRMOJSoNsCaqc= 2156 | dependencies: 2157 | clean-css "^4.1.11" 2158 | constantinople "^3.0.1" 2159 | jstransformer "1.0.0" 2160 | pug-error "^1.3.3" 2161 | pug-walk "^1.1.8" 2162 | resolve "^1.1.6" 2163 | uglify-js "^2.6.1" 2164 | 2165 | pug-lexer@^4.1.0: 2166 | version "4.1.0" 2167 | resolved "https://registry.npm.taobao.org/pug-lexer/download/pug-lexer-4.1.0.tgz#531cde48c7c0b1fcbbc2b85485c8665e31489cfd" 2168 | integrity sha1-UxzeSMfAsfy7wrhUhchmXjFInP0= 2169 | dependencies: 2170 | character-parser "^2.1.1" 2171 | is-expression "^3.0.0" 2172 | pug-error "^1.3.3" 2173 | 2174 | pug-linker@^3.0.6: 2175 | version "3.0.6" 2176 | resolved "https://registry.npm.taobao.org/pug-linker/download/pug-linker-3.0.6.tgz#f5bf218b0efd65ce6670f7afc51658d0f82989fb" 2177 | integrity sha1-9b8hiw79Zc5mcPevxRZY0Pgpifs= 2178 | dependencies: 2179 | pug-error "^1.3.3" 2180 | pug-walk "^1.1.8" 2181 | 2182 | pug-load@^2.0.12: 2183 | version "2.0.12" 2184 | resolved "https://registry.npm.taobao.org/pug-load/download/pug-load-2.0.12.tgz#d38c85eb85f6e2f704dea14dcca94144d35d3e7b" 2185 | integrity sha1-04yF64X24vcE3qFNzKlBRNNdPns= 2186 | dependencies: 2187 | object-assign "^4.1.0" 2188 | pug-walk "^1.1.8" 2189 | 2190 | pug-parser@^5.0.1: 2191 | version "5.0.1" 2192 | resolved "https://registry.npm.taobao.org/pug-parser/download/pug-parser-5.0.1.tgz#03e7ada48b6840bd3822f867d7d90f842d0ffdc9" 2193 | integrity sha1-A+etpItoQL04Ivhn19kPhC0P/ck= 2194 | dependencies: 2195 | pug-error "^1.3.3" 2196 | token-stream "0.0.1" 2197 | 2198 | pug-runtime@^2.0.5: 2199 | version "2.0.5" 2200 | resolved "https://registry.npm.taobao.org/pug-runtime/download/pug-runtime-2.0.5.tgz#6da7976c36bf22f68e733c359240d8ae7a32953a" 2201 | integrity sha1-baeXbDa/IvaOczw1kkDYrnoylTo= 2202 | 2203 | pug-strip-comments@^1.0.4: 2204 | version "1.0.4" 2205 | resolved "https://registry.npm.taobao.org/pug-strip-comments/download/pug-strip-comments-1.0.4.tgz#cc1b6de1f6e8f5931cf02ec66cdffd3f50eaf8a8" 2206 | integrity sha1-zBtt4fbo9ZMc8C7GbN/9P1Dq+Kg= 2207 | dependencies: 2208 | pug-error "^1.3.3" 2209 | 2210 | pug-walk@^1.1.8: 2211 | version "1.1.8" 2212 | resolved "https://registry.npm.taobao.org/pug-walk/download/pug-walk-1.1.8.tgz#b408f67f27912f8c21da2f45b7230c4bd2a5ea7a" 2213 | integrity sha1-tAj2fyeRL4wh2i9FtyMMS9Kl6no= 2214 | 2215 | pug@^2.0.3: 2216 | version "2.0.4" 2217 | resolved "https://registry.npm.taobao.org/pug/download/pug-2.0.4.tgz#ee7682ec0a60494b38d48a88f05f3b0ac931377d" 2218 | integrity sha1-7naC7ApgSUs41IqI8F87CskxN30= 2219 | dependencies: 2220 | pug-code-gen "^2.0.2" 2221 | pug-filters "^3.1.1" 2222 | pug-lexer "^4.1.0" 2223 | pug-linker "^3.0.6" 2224 | pug-load "^2.0.12" 2225 | pug-parser "^5.0.1" 2226 | pug-runtime "^2.0.5" 2227 | pug-strip-comments "^1.0.4" 2228 | 2229 | qs@^6.5.2: 2230 | version "6.9.1" 2231 | resolved "https://registry.npm.taobao.org/qs/download/qs-6.9.1.tgz#20082c65cb78223635ab1a9eaca8875a29bf8ec9" 2232 | integrity sha1-IAgsZct4IjY1qxqerKiHWim/jsk= 2233 | 2234 | raw-body@^2.3.3: 2235 | version "2.4.1" 2236 | resolved "https://registry.npm.taobao.org/raw-body/download/raw-body-2.4.1.tgz#30ac82f98bb5ae8c152e67149dac8d55153b168c" 2237 | integrity sha1-MKyC+Yu1rowVLmcUnayNVRU7Fow= 2238 | dependencies: 2239 | bytes "3.1.0" 2240 | http-errors "1.7.3" 2241 | iconv-lite "0.4.24" 2242 | unpipe "1.0.0" 2243 | 2244 | rc@^1.0.1, rc@^1.1.6, rc@^1.2.7: 2245 | version "1.2.8" 2246 | resolved "https://registry.npm.taobao.org/rc/download/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" 2247 | integrity sha1-zZJL9SAKB1uDwYjNa54hG3/A0+0= 2248 | dependencies: 2249 | deep-extend "^0.6.0" 2250 | ini "~1.3.0" 2251 | minimist "^1.2.0" 2252 | strip-json-comments "~2.0.1" 2253 | 2254 | readable-stream@2, readable-stream@^2.0.2, readable-stream@^2.0.6: 2255 | version "2.3.6" 2256 | resolved "https://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" 2257 | integrity sha1-sRwn2IuP8fvgcGQ8+UsMea4bCq8= 2258 | dependencies: 2259 | core-util-is "~1.0.0" 2260 | inherits "~2.0.3" 2261 | isarray "~1.0.0" 2262 | process-nextick-args "~2.0.0" 2263 | safe-buffer "~5.1.1" 2264 | string_decoder "~1.1.1" 2265 | util-deprecate "~1.0.1" 2266 | 2267 | readdirp@^2.2.1: 2268 | version "2.2.1" 2269 | resolved "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" 2270 | integrity sha1-DodiKjMlqjPokihcr4tOhGUppSU= 2271 | dependencies: 2272 | graceful-fs "^4.1.11" 2273 | micromatch "^3.1.10" 2274 | readable-stream "^2.0.2" 2275 | 2276 | regenerator-runtime@^0.11.0: 2277 | version "0.11.1" 2278 | resolved "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" 2279 | integrity sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk= 2280 | 2281 | regex-not@^1.0.0, regex-not@^1.0.2: 2282 | version "1.0.2" 2283 | resolved "https://registry.npm.taobao.org/regex-not/download/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" 2284 | integrity sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw= 2285 | dependencies: 2286 | extend-shallow "^3.0.2" 2287 | safe-regex "^1.1.0" 2288 | 2289 | regexp-clone@1.0.0, regexp-clone@^1.0.0: 2290 | version "1.0.0" 2291 | resolved "https://registry.npm.taobao.org/regexp-clone/download/regexp-clone-1.0.0.tgz#222db967623277056260b992626354a04ce9bf63" 2292 | integrity sha1-Ii25Z2IydwViYLmSYmNUoEzpv2M= 2293 | 2294 | registry-auth-token@^3.0.1: 2295 | version "3.4.0" 2296 | resolved "https://registry.npm.taobao.org/registry-auth-token/download/registry-auth-token-3.4.0.tgz#d7446815433f5d5ed6431cd5dca21048f66b397e" 2297 | integrity sha1-10RoFUM/XV7WQxzV3KIQSPZrOX4= 2298 | dependencies: 2299 | rc "^1.1.6" 2300 | safe-buffer "^5.0.1" 2301 | 2302 | registry-url@^3.0.3: 2303 | version "3.1.0" 2304 | resolved "https://registry.npm.taobao.org/registry-url/download/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" 2305 | integrity sha1-PU74cPc93h138M+aOBQyRE4XSUI= 2306 | dependencies: 2307 | rc "^1.0.1" 2308 | 2309 | relateurl@0.2.x: 2310 | version "0.2.7" 2311 | resolved "https://registry.npm.taobao.org/relateurl/download/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" 2312 | integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= 2313 | 2314 | remove-trailing-separator@^1.0.1: 2315 | version "1.1.0" 2316 | resolved "https://registry.npm.taobao.org/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" 2317 | integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= 2318 | 2319 | repeat-element@^1.1.2: 2320 | version "1.1.3" 2321 | resolved "https://registry.npm.taobao.org/repeat-element/download/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" 2322 | integrity sha1-eC4NglwMWjuzlzH4Tv7mt0Lmsc4= 2323 | 2324 | repeat-string@^1.5.2, repeat-string@^1.6.1: 2325 | version "1.6.1" 2326 | resolved "https://registry.npm.taobao.org/repeat-string/download/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" 2327 | integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= 2328 | 2329 | require_optional@^1.0.1: 2330 | version "1.0.1" 2331 | resolved "https://registry.npm.taobao.org/require_optional/download/require_optional-1.0.1.tgz#4cf35a4247f64ca3df8c2ef208cc494b1ca8fc2e" 2332 | integrity sha1-TPNaQkf2TKPfjC7yCMxJSxyo/C4= 2333 | dependencies: 2334 | resolve-from "^2.0.0" 2335 | semver "^5.1.0" 2336 | 2337 | resolve-from@^2.0.0: 2338 | version "2.0.0" 2339 | resolved "https://registry.npm.taobao.org/resolve-from/download/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" 2340 | integrity sha1-lICrIOlP+h2egKgEx+oUdhGWa1c= 2341 | 2342 | resolve-path@^1.4.0: 2343 | version "1.4.0" 2344 | resolved "https://registry.npm.taobao.org/resolve-path/download/resolve-path-1.4.0.tgz#c4bda9f5efb2fce65247873ab36bb4d834fe16f7" 2345 | integrity sha1-xL2p9e+y/OZSR4c6s2u02DT+Fvc= 2346 | dependencies: 2347 | http-errors "~1.6.2" 2348 | path-is-absolute "1.0.1" 2349 | 2350 | resolve-url@^0.2.1: 2351 | version "0.2.1" 2352 | resolved "https://registry.npm.taobao.org/resolve-url/download/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" 2353 | integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= 2354 | 2355 | resolve@^1.1.6: 2356 | version "1.13.1" 2357 | resolved "https://registry.npm.taobao.org/resolve/download/resolve-1.13.1.tgz?cache=0&sync_timestamp=1574810126637&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve%2Fdownload%2Fresolve-1.13.1.tgz#be0aa4c06acd53083505abb35f4d66932ab35d16" 2358 | integrity sha1-vgqkwGrNUwg1BauzX01mkyqzXRY= 2359 | dependencies: 2360 | path-parse "^1.0.6" 2361 | 2362 | ret@~0.1.10: 2363 | version "0.1.15" 2364 | resolved "https://registry.npm.taobao.org/ret/download/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" 2365 | integrity sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w= 2366 | 2367 | right-align@^0.1.1: 2368 | version "0.1.3" 2369 | resolved "https://registry.npm.taobao.org/right-align/download/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" 2370 | integrity sha1-YTObci/mo1FWiSENJOFMlhSGE+8= 2371 | dependencies: 2372 | align-text "^0.1.1" 2373 | 2374 | rimraf@^2.6.1: 2375 | version "2.7.1" 2376 | resolved "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" 2377 | integrity sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w= 2378 | dependencies: 2379 | glob "^7.1.3" 2380 | 2381 | safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: 2382 | version "5.1.2" 2383 | resolved "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 2384 | integrity sha1-mR7GnSluAxN0fVm9/St0XDX4go0= 2385 | 2386 | safe-buffer@^5.0.1, safe-buffer@^5.1.2: 2387 | version "5.2.0" 2388 | resolved "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" 2389 | integrity sha1-t02uxJsRSPiMZLaNSbHoFcHy9Rk= 2390 | 2391 | safe-regex@^1.1.0: 2392 | version "1.1.0" 2393 | resolved "https://registry.npm.taobao.org/safe-regex/download/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" 2394 | integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= 2395 | dependencies: 2396 | ret "~0.1.10" 2397 | 2398 | "safer-buffer@>= 2.1.2 < 3": 2399 | version "2.1.2" 2400 | resolved "https://registry.npm.taobao.org/safer-buffer/download/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 2401 | integrity sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo= 2402 | 2403 | saslprep@^1.0.0: 2404 | version "1.0.3" 2405 | resolved "https://registry.npm.taobao.org/saslprep/download/saslprep-1.0.3.tgz#4c02f946b56cf54297e347ba1093e7acac4cf226" 2406 | integrity sha1-TAL5RrVs9UKX40e6EJPnrKxM8iY= 2407 | dependencies: 2408 | sparse-bitfield "^3.0.3" 2409 | 2410 | sax@^1.2.4: 2411 | version "1.2.4" 2412 | resolved "https://registry.npm.taobao.org/sax/download/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" 2413 | integrity sha1-KBYjTiN4vdxOU1T6tcqold9xANk= 2414 | 2415 | semver-diff@^2.0.0: 2416 | version "2.1.0" 2417 | resolved "https://registry.npm.taobao.org/semver-diff/download/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" 2418 | integrity sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY= 2419 | dependencies: 2420 | semver "^5.0.3" 2421 | 2422 | semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.6.0, semver@^5.7.1: 2423 | version "5.7.1" 2424 | resolved "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" 2425 | integrity sha1-qVT5Ma66UI0we78Gnv8MAclhFvc= 2426 | 2427 | set-blocking@~2.0.0: 2428 | version "2.0.0" 2429 | resolved "https://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 2430 | integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= 2431 | 2432 | set-value@^2.0.0, set-value@^2.0.1: 2433 | version "2.0.1" 2434 | resolved "https://registry.npm.taobao.org/set-value/download/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" 2435 | integrity sha1-oY1AUw5vB95CKMfe/kInr4ytAFs= 2436 | dependencies: 2437 | extend-shallow "^2.0.1" 2438 | is-extendable "^0.1.1" 2439 | is-plain-object "^2.0.3" 2440 | split-string "^3.0.1" 2441 | 2442 | setprototypeof@1.1.0: 2443 | version "1.1.0" 2444 | resolved "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" 2445 | integrity sha1-0L2FU2iHtv58DYGMuWLZ2RxU5lY= 2446 | 2447 | setprototypeof@1.1.1: 2448 | version "1.1.1" 2449 | resolved "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" 2450 | integrity sha1-fpWsskqpL1iF4KvvW6ExMw1K5oM= 2451 | 2452 | shebang-command@^1.2.0: 2453 | version "1.2.0" 2454 | resolved "https://registry.npm.taobao.org/shebang-command/download/shebang-command-1.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fshebang-command%2Fdownload%2Fshebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 2455 | integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= 2456 | dependencies: 2457 | shebang-regex "^1.0.0" 2458 | 2459 | shebang-regex@^1.0.0: 2460 | version "1.0.0" 2461 | resolved "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 2462 | integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= 2463 | 2464 | sift@7.0.1: 2465 | version "7.0.1" 2466 | resolved "https://registry.npm.taobao.org/sift/download/sift-7.0.1.tgz#47d62c50b159d316f1372f8b53f9c10cd21a4b08" 2467 | integrity sha1-R9YsULFZ0xbxNy+LU/nBDNIaSwg= 2468 | 2469 | sigmund@^1.0.1: 2470 | version "1.0.1" 2471 | resolved "https://registry.npm.taobao.org/sigmund/download/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" 2472 | integrity sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA= 2473 | 2474 | signal-exit@^3.0.0, signal-exit@^3.0.2: 2475 | version "3.0.2" 2476 | resolved "https://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 2477 | integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= 2478 | 2479 | sliced@1.0.1: 2480 | version "1.0.1" 2481 | resolved "https://registry.npm.taobao.org/sliced/download/sliced-1.0.1.tgz#0b3a662b5d04c3177b1926bea82b03f837a2ef41" 2482 | integrity sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E= 2483 | 2484 | snapdragon-node@^2.0.1: 2485 | version "2.1.1" 2486 | resolved "https://registry.npm.taobao.org/snapdragon-node/download/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" 2487 | integrity sha1-bBdfhv8UvbByRWPo88GwIaKGhTs= 2488 | dependencies: 2489 | define-property "^1.0.0" 2490 | isobject "^3.0.0" 2491 | snapdragon-util "^3.0.1" 2492 | 2493 | snapdragon-util@^3.0.1: 2494 | version "3.0.1" 2495 | resolved "https://registry.npm.taobao.org/snapdragon-util/download/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" 2496 | integrity sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI= 2497 | dependencies: 2498 | kind-of "^3.2.0" 2499 | 2500 | snapdragon@^0.8.1: 2501 | version "0.8.2" 2502 | resolved "https://registry.npm.taobao.org/snapdragon/download/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" 2503 | integrity sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0= 2504 | dependencies: 2505 | base "^0.11.1" 2506 | debug "^2.2.0" 2507 | define-property "^0.2.5" 2508 | extend-shallow "^2.0.1" 2509 | map-cache "^0.2.2" 2510 | source-map "^0.5.6" 2511 | source-map-resolve "^0.5.0" 2512 | use "^3.1.0" 2513 | 2514 | source-map-resolve@^0.5.0: 2515 | version "0.5.2" 2516 | resolved "https://registry.npm.taobao.org/source-map-resolve/download/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" 2517 | integrity sha1-cuLMNAlVQ+Q7LGKyxMENSpBU8lk= 2518 | dependencies: 2519 | atob "^2.1.1" 2520 | decode-uri-component "^0.2.0" 2521 | resolve-url "^0.2.1" 2522 | source-map-url "^0.4.0" 2523 | urix "^0.1.0" 2524 | 2525 | source-map-url@^0.4.0: 2526 | version "0.4.0" 2527 | resolved "https://registry.npm.taobao.org/source-map-url/download/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" 2528 | integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= 2529 | 2530 | source-map@^0.5.6, source-map@~0.5.1: 2531 | version "0.5.7" 2532 | resolved "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" 2533 | integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= 2534 | 2535 | source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: 2536 | version "0.6.1" 2537 | resolved "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 2538 | integrity sha1-dHIq8y6WFOnCh6jQu95IteLxomM= 2539 | 2540 | sparse-bitfield@^3.0.3: 2541 | version "3.0.3" 2542 | resolved "https://registry.npm.taobao.org/sparse-bitfield/download/sparse-bitfield-3.0.3.tgz#ff4ae6e68656056ba4b3e792ab3334d38273ca11" 2543 | integrity sha1-/0rm5oZWBWuks+eSqzM004JzyhE= 2544 | dependencies: 2545 | memory-pager "^1.0.2" 2546 | 2547 | split-string@^3.0.1, split-string@^3.0.2: 2548 | version "3.1.0" 2549 | resolved "https://registry.npm.taobao.org/split-string/download/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" 2550 | integrity sha1-fLCd2jqGWFcFxks5pkZgOGguj+I= 2551 | dependencies: 2552 | extend-shallow "^3.0.0" 2553 | 2554 | static-extend@^0.1.1: 2555 | version "0.1.2" 2556 | resolved "https://registry.npm.taobao.org/static-extend/download/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" 2557 | integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= 2558 | dependencies: 2559 | define-property "^0.2.5" 2560 | object-copy "^0.1.0" 2561 | 2562 | "statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@^1.5.0: 2563 | version "1.5.0" 2564 | resolved "https://registry.npm.taobao.org/statuses/download/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" 2565 | integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= 2566 | 2567 | stream-wormhole@^1.1.0: 2568 | version "1.1.0" 2569 | resolved "https://registry.npm.taobao.org/stream-wormhole/download/stream-wormhole-1.1.0.tgz#300aff46ced553cfec642a05251885417693c33d" 2570 | integrity sha1-MAr/Rs7VU8/sZCoFJRiFQXaTwz0= 2571 | 2572 | streaming-json-stringify@3: 2573 | version "3.1.0" 2574 | resolved "https://registry.npm.taobao.org/streaming-json-stringify/download/streaming-json-stringify-3.1.0.tgz#80200437a993cc39c4fe00263b7b3b903ac87af5" 2575 | integrity sha1-gCAEN6mTzDnE/gAmO3s7kDrIevU= 2576 | dependencies: 2577 | json-stringify-safe "5" 2578 | readable-stream "2" 2579 | 2580 | string-width@^1.0.1: 2581 | version "1.0.2" 2582 | resolved "https://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 2583 | integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= 2584 | dependencies: 2585 | code-point-at "^1.0.0" 2586 | is-fullwidth-code-point "^1.0.0" 2587 | strip-ansi "^3.0.0" 2588 | 2589 | "string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.1: 2590 | version "2.1.1" 2591 | resolved "https://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" 2592 | integrity sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4= 2593 | dependencies: 2594 | is-fullwidth-code-point "^2.0.0" 2595 | strip-ansi "^4.0.0" 2596 | 2597 | string_decoder@~1.1.1: 2598 | version "1.1.1" 2599 | resolved "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 2600 | integrity sha1-nPFhG6YmhdcDCunkujQUnDrwP8g= 2601 | dependencies: 2602 | safe-buffer "~5.1.0" 2603 | 2604 | strip-ansi@^3.0.0, strip-ansi@^3.0.1: 2605 | version "3.0.1" 2606 | resolved "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1573280549549&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 2607 | integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= 2608 | dependencies: 2609 | ansi-regex "^2.0.0" 2610 | 2611 | strip-ansi@^4.0.0: 2612 | version "4.0.0" 2613 | resolved "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&sync_timestamp=1573280549549&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" 2614 | integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= 2615 | dependencies: 2616 | ansi-regex "^3.0.0" 2617 | 2618 | strip-eof@^1.0.0: 2619 | version "1.0.0" 2620 | resolved "https://registry.npm.taobao.org/strip-eof/download/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" 2621 | integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= 2622 | 2623 | strip-json-comments@~2.0.1: 2624 | version "2.0.1" 2625 | resolved "https://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 2626 | integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= 2627 | 2628 | supports-color@^5.3.0, supports-color@^5.5.0: 2629 | version "5.5.0" 2630 | resolved "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1569557271992&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 2631 | integrity sha1-4uaaRKyHcveKHsCzW2id9lMO/I8= 2632 | dependencies: 2633 | has-flag "^3.0.0" 2634 | 2635 | tar@^4: 2636 | version "4.4.13" 2637 | resolved "https://registry.npm.taobao.org/tar/download/tar-4.4.13.tgz?cache=0&sync_timestamp=1570286254496&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftar%2Fdownload%2Ftar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" 2638 | integrity sha1-Q7NkvFKIjVVSmGN7ENYHkCVKtSU= 2639 | dependencies: 2640 | chownr "^1.1.1" 2641 | fs-minipass "^1.2.5" 2642 | minipass "^2.8.6" 2643 | minizlib "^1.2.1" 2644 | mkdirp "^0.5.0" 2645 | safe-buffer "^5.1.2" 2646 | yallist "^3.0.3" 2647 | 2648 | term-size@^1.2.0: 2649 | version "1.2.0" 2650 | resolved "https://registry.npm.taobao.org/term-size/download/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" 2651 | integrity sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk= 2652 | dependencies: 2653 | execa "^0.7.0" 2654 | 2655 | thenify-all@^1.0.0: 2656 | version "1.6.0" 2657 | resolved "https://registry.npm.taobao.org/thenify-all/download/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" 2658 | integrity sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY= 2659 | dependencies: 2660 | thenify ">= 3.1.0 < 4" 2661 | 2662 | "thenify@>= 3.1.0 < 4": 2663 | version "3.3.0" 2664 | resolved "https://registry.npm.taobao.org/thenify/download/thenify-3.3.0.tgz#e69e38a1babe969b0108207978b9f62b88604839" 2665 | integrity sha1-5p44obq+lpsBCCB5eLn2K4hgSDk= 2666 | dependencies: 2667 | any-promise "^1.0.0" 2668 | 2669 | timed-out@^4.0.0: 2670 | version "4.0.1" 2671 | resolved "https://registry.npm.taobao.org/timed-out/download/timed-out-4.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftimed-out%2Fdownload%2Ftimed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" 2672 | integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= 2673 | 2674 | to-fast-properties@^1.0.3: 2675 | version "1.0.3" 2676 | resolved "https://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" 2677 | integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= 2678 | 2679 | to-object-path@^0.3.0: 2680 | version "0.3.0" 2681 | resolved "https://registry.npm.taobao.org/to-object-path/download/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" 2682 | integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= 2683 | dependencies: 2684 | kind-of "^3.0.2" 2685 | 2686 | to-regex-range@^2.1.0: 2687 | version "2.1.1" 2688 | resolved "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" 2689 | integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= 2690 | dependencies: 2691 | is-number "^3.0.0" 2692 | repeat-string "^1.6.1" 2693 | 2694 | to-regex@^3.0.1, to-regex@^3.0.2: 2695 | version "3.0.2" 2696 | resolved "https://registry.npm.taobao.org/to-regex/download/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" 2697 | integrity sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4= 2698 | dependencies: 2699 | define-property "^2.0.2" 2700 | extend-shallow "^3.0.2" 2701 | regex-not "^1.0.2" 2702 | safe-regex "^1.1.0" 2703 | 2704 | toidentifier@1.0.0: 2705 | version "1.0.0" 2706 | resolved "https://registry.npm.taobao.org/toidentifier/download/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" 2707 | integrity sha1-fhvjRw8ed5SLxD2Uo8j013UrpVM= 2708 | 2709 | token-stream@0.0.1: 2710 | version "0.0.1" 2711 | resolved "https://registry.npm.taobao.org/token-stream/download/token-stream-0.0.1.tgz#ceeefc717a76c4316f126d0b9dbaa55d7e7df01a" 2712 | integrity sha1-zu78cXp2xDFvEm0LnbqlXX598Bo= 2713 | 2714 | touch@^3.1.0: 2715 | version "3.1.0" 2716 | resolved "https://registry.npm.taobao.org/touch/download/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" 2717 | integrity sha1-/jZfX3XsntTlaCXgu3bSSrdK+Ds= 2718 | dependencies: 2719 | nopt "~1.0.10" 2720 | 2721 | tsscmp@1.0.6: 2722 | version "1.0.6" 2723 | resolved "https://registry.npm.taobao.org/tsscmp/download/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb" 2724 | integrity sha1-hbmVg6w1iexL/vgltQAKqRHWBes= 2725 | 2726 | type-check@~0.3.2: 2727 | version "0.3.2" 2728 | resolved "https://registry.npm.taobao.org/type-check/download/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" 2729 | integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= 2730 | dependencies: 2731 | prelude-ls "~1.1.2" 2732 | 2733 | type-is@^1.6.16: 2734 | version "1.6.18" 2735 | resolved "https://registry.npm.taobao.org/type-is/download/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" 2736 | integrity sha1-TlUs0F3wlGfcvE73Od6J8s83wTE= 2737 | dependencies: 2738 | media-typer "0.3.0" 2739 | mime-types "~2.1.24" 2740 | 2741 | uglify-js@3.4.x: 2742 | version "3.4.10" 2743 | resolved "https://registry.npm.taobao.org/uglify-js/download/uglify-js-3.4.10.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuglify-js%2Fdownload%2Fuglify-js-3.4.10.tgz#9ad9563d8eb3acdfb8d38597d2af1d815f6a755f" 2744 | integrity sha1-mtlWPY6zrN+404WX0q8dgV9qdV8= 2745 | dependencies: 2746 | commander "~2.19.0" 2747 | source-map "~0.6.1" 2748 | 2749 | uglify-js@^2.6.1: 2750 | version "2.8.29" 2751 | resolved "https://registry.npm.taobao.org/uglify-js/download/uglify-js-2.8.29.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuglify-js%2Fdownload%2Fuglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" 2752 | integrity sha1-KcVzMUgFe7Th913zW3qcty5qWd0= 2753 | dependencies: 2754 | source-map "~0.5.1" 2755 | yargs "~3.10.0" 2756 | optionalDependencies: 2757 | uglify-to-browserify "~1.0.0" 2758 | 2759 | uglify-to-browserify@~1.0.0: 2760 | version "1.0.2" 2761 | resolved "https://registry.npm.taobao.org/uglify-to-browserify/download/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" 2762 | integrity sha1-bgkk1r2mta/jSeOabWMoUKD4grc= 2763 | 2764 | undefsafe@^2.0.2: 2765 | version "2.0.2" 2766 | resolved "https://registry.npm.taobao.org/undefsafe/download/undefsafe-2.0.2.tgz#225f6b9e0337663e0d8e7cfd686fc2836ccace76" 2767 | integrity sha1-Il9rngM3Zj4Njnz9aG/Cg2zKznY= 2768 | dependencies: 2769 | debug "^2.2.0" 2770 | 2771 | union-value@^1.0.0: 2772 | version "1.0.1" 2773 | resolved "https://registry.npm.taobao.org/union-value/download/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" 2774 | integrity sha1-C2/nuDWuzaYcbqTU8CwUIh4QmEc= 2775 | dependencies: 2776 | arr-union "^3.1.0" 2777 | get-value "^2.0.6" 2778 | is-extendable "^0.1.1" 2779 | set-value "^2.0.1" 2780 | 2781 | unique-string@^1.0.0: 2782 | version "1.0.0" 2783 | resolved "https://registry.npm.taobao.org/unique-string/download/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" 2784 | integrity sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo= 2785 | dependencies: 2786 | crypto-random-string "^1.0.0" 2787 | 2788 | unpipe@1.0.0: 2789 | version "1.0.0" 2790 | resolved "https://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" 2791 | integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= 2792 | 2793 | unset-value@^1.0.0: 2794 | version "1.0.0" 2795 | resolved "https://registry.npm.taobao.org/unset-value/download/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" 2796 | integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= 2797 | dependencies: 2798 | has-value "^0.3.1" 2799 | isobject "^3.0.0" 2800 | 2801 | unzip-response@^2.0.1: 2802 | version "2.0.1" 2803 | resolved "https://registry.npm.taobao.org/unzip-response/download/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" 2804 | integrity sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c= 2805 | 2806 | upath@^1.1.1: 2807 | version "1.2.0" 2808 | resolved "https://registry.npm.taobao.org/upath/download/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" 2809 | integrity sha1-j2bbzVWog6za5ECK+LA1pQRMGJQ= 2810 | 2811 | update-notifier@^2.5.0: 2812 | version "2.5.0" 2813 | resolved "https://registry.npm.taobao.org/update-notifier/download/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6" 2814 | integrity sha1-0HRFk+E/Fh5AassdlAi3LK0Ir/Y= 2815 | dependencies: 2816 | boxen "^1.2.1" 2817 | chalk "^2.0.1" 2818 | configstore "^3.0.0" 2819 | import-lazy "^2.1.0" 2820 | is-ci "^1.0.10" 2821 | is-installed-globally "^0.1.0" 2822 | is-npm "^1.0.0" 2823 | latest-version "^3.0.0" 2824 | semver-diff "^2.0.0" 2825 | xdg-basedir "^3.0.0" 2826 | 2827 | upper-case@^1.1.1: 2828 | version "1.1.3" 2829 | resolved "https://registry.npm.taobao.org/upper-case/download/upper-case-1.1.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fupper-case%2Fdownload%2Fupper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" 2830 | integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg= 2831 | 2832 | urijs@^1.19.0: 2833 | version "1.19.2" 2834 | resolved "https://registry.npm.taobao.org/urijs/download/urijs-1.19.2.tgz?cache=0&sync_timestamp=1571583500604&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Furijs%2Fdownload%2Furijs-1.19.2.tgz#f9be09f00c4c5134b7cb3cf475c1dd394526265a" 2835 | integrity sha1-+b4J8AxMUTS3yzz0dcHdOUUmJlo= 2836 | 2837 | urix@^0.1.0: 2838 | version "0.1.0" 2839 | resolved "https://registry.npm.taobao.org/urix/download/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" 2840 | integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= 2841 | 2842 | url-parse-lax@^1.0.0: 2843 | version "1.0.0" 2844 | resolved "https://registry.npm.taobao.org/url-parse-lax/download/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" 2845 | integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= 2846 | dependencies: 2847 | prepend-http "^1.0.1" 2848 | 2849 | use@^3.1.0: 2850 | version "3.1.1" 2851 | resolved "https://registry.npm.taobao.org/use/download/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" 2852 | integrity sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8= 2853 | 2854 | util-deprecate@~1.0.1: 2855 | version "1.0.2" 2856 | resolved "https://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 2857 | integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= 2858 | 2859 | vary@^1.1.2: 2860 | version "1.1.2" 2861 | resolved "https://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" 2862 | integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= 2863 | 2864 | void-elements@^2.0.1: 2865 | version "2.0.1" 2866 | resolved "https://registry.npm.taobao.org/void-elements/download/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" 2867 | integrity sha1-wGavtYK7HLQSjWDqkjkulNXp2+w= 2868 | 2869 | which@^1.2.9: 2870 | version "1.3.1" 2871 | resolved "https://registry.npm.taobao.org/which/download/which-1.3.1.tgz?cache=0&sync_timestamp=1574116898193&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" 2872 | integrity sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo= 2873 | dependencies: 2874 | isexe "^2.0.0" 2875 | 2876 | wide-align@^1.1.0: 2877 | version "1.1.3" 2878 | resolved "https://registry.npm.taobao.org/wide-align/download/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" 2879 | integrity sha1-rgdOa9wMFKQx6ATmJFScYzsABFc= 2880 | dependencies: 2881 | string-width "^1.0.2 || 2" 2882 | 2883 | widest-line@^2.0.0: 2884 | version "2.0.1" 2885 | resolved "https://registry.npm.taobao.org/widest-line/download/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" 2886 | integrity sha1-dDh2RzDsfvQ4HOTfgvuYpTFCo/w= 2887 | dependencies: 2888 | string-width "^2.1.1" 2889 | 2890 | window-size@0.1.0: 2891 | version "0.1.0" 2892 | resolved "https://registry.npm.taobao.org/window-size/download/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" 2893 | integrity sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0= 2894 | 2895 | with@^5.0.0: 2896 | version "5.1.1" 2897 | resolved "https://registry.npm.taobao.org/with/download/with-5.1.1.tgz#fa4daa92daf32c4ea94ed453c81f04686b575dfe" 2898 | integrity sha1-+k2qktrzLE6pTtRTyB8EaGtXXf4= 2899 | dependencies: 2900 | acorn "^3.1.0" 2901 | acorn-globals "^3.0.0" 2902 | 2903 | word-wrap@~1.2.3: 2904 | version "1.2.3" 2905 | resolved "https://registry.npm.taobao.org/word-wrap/download/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" 2906 | integrity sha1-YQY29rH3A4kb00dxzLF/uTtHB5w= 2907 | 2908 | wordwrap@0.0.2: 2909 | version "0.0.2" 2910 | resolved "https://registry.npm.taobao.org/wordwrap/download/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" 2911 | integrity sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8= 2912 | 2913 | wrappy@1: 2914 | version "1.0.2" 2915 | resolved "https://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 2916 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 2917 | 2918 | write-file-atomic@^2.0.0: 2919 | version "2.4.3" 2920 | resolved "https://registry.npm.taobao.org/write-file-atomic/download/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" 2921 | integrity sha1-H9Lprh3z51uNjDZ0Q8aS1MqB9IE= 2922 | dependencies: 2923 | graceful-fs "^4.1.11" 2924 | imurmurhash "^0.1.4" 2925 | signal-exit "^3.0.2" 2926 | 2927 | xdg-basedir@^3.0.0: 2928 | version "3.0.0" 2929 | resolved "https://registry.npm.taobao.org/xdg-basedir/download/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" 2930 | integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ= 2931 | 2932 | yallist@^2.1.2: 2933 | version "2.1.2" 2934 | resolved "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyallist%2Fdownload%2Fyallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" 2935 | integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= 2936 | 2937 | yallist@^3.0.0, yallist@^3.0.3: 2938 | version "3.1.1" 2939 | resolved "https://registry.npm.taobao.org/yallist/download/yallist-3.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyallist%2Fdownload%2Fyallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" 2940 | integrity sha1-27fa+b/YusmrRev2ArjLrQ1dCP0= 2941 | 2942 | yargs@~3.10.0: 2943 | version "3.10.0" 2944 | resolved "https://registry.npm.taobao.org/yargs/download/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" 2945 | integrity sha1-9+572FfdfB0tOMDnTvvWgdFDH9E= 2946 | dependencies: 2947 | camelcase "^1.0.2" 2948 | cliui "^2.1.0" 2949 | decamelize "^1.0.0" 2950 | window-size "0.1.0" 2951 | 2952 | ylru@^1.2.0: 2953 | version "1.2.1" 2954 | resolved "https://registry.npm.taobao.org/ylru/download/ylru-1.2.1.tgz#f576b63341547989c1de7ba288760923b27fe84f" 2955 | integrity sha1-9Xa2M0FUeYnB3nuiiHYJI7J/6E8= 2956 | --------------------------------------------------------------------------------