├── .babelrc ├── .gitignore ├── .npmignore ├── .travis.yml ├── LICENSE ├── README.md ├── docs └── dev.png ├── lib └── index.js ├── package.json ├── src └── index.js ├── test ├── app │ ├── controllers │ │ ├── Hello.js │ │ ├── HelloWithMiddlewares.js │ │ ├── Inherit.js │ │ └── Priority.js │ └── index.js └── test.js └── yarn.lock /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["es2015-node6", "stage-0"], 3 | "plugins": [ 4 | "transform-decorators-legacy", 5 | "transform-class-properties", 6 | "transform-runtime", 7 | ], 8 | "env": { 9 | "development": { 10 | "sourceMaps": "inline" 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | 6 | # Runtime data 7 | pids 8 | *.pid 9 | *.seed 10 | 11 | # Directory for instrumented libs generated by jscoverage/JSCover 12 | lib-cov 13 | 14 | # Coverage directory used by tools like istanbul 15 | coverage 16 | 17 | # nyc test coverage 18 | .nyc_output 19 | 20 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 21 | .grunt 22 | 23 | # node-waf configuration 24 | .lock-wscript 25 | 26 | # Compiled binary addons (http://nodejs.org/api/addons.html) 27 | build/Release 28 | 29 | # Dependency directories 30 | node_modules 31 | jspm_packages 32 | 33 | # Optional npm cache directory 34 | .npm 35 | 36 | # Optional REPL history 37 | .node_repl_history 38 | yarn-error.log 39 | .nyc_output 40 | coverage 41 | .DS_Store 42 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | docs/ 2 | yarn-error.log 3 | .nyc_output 4 | coverage 5 | .DS_Store 6 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | cache: yarn 3 | node_js: 4 | - '6' 5 | 6 | sudo: false 7 | after_success: npm run cover 8 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Zack Young 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # koa-dec-router 2 | 3 | * An ES6 decorator + class based router, support inherit, override, priority, auto load controllers, etc. 4 | * Using [koa-router](https://github.com/alexmingoia/koa-router) under the hood. 5 | * [Examples](test/app) 6 | 7 | 8 | [![Build Status](https://travis-ci.org/zaaack/koa-dec-router.svg?branch=master)](https://travis-ci.org/zaaack/koa-dec-router) [![npm](https://img.shields.io/npm/v/koa-dec-router.svg)](https://www.npmjs.com/package/koa-dec-router) [![npm](https://img.shields.io/npm/dm/koa-dec-router.svg)](https://www.npmjs.com/package/koa-dec-router) 9 | 10 | ## Install 11 | 12 | ```sh 13 | npm i koa-dec-router 14 | 15 | ``` 16 | 17 | or 18 | 19 | ```sh 20 | yarn add koa-dec-router 21 | ``` 22 | ## Demo 23 | 24 | app.js 25 | ```js 26 | 27 | import Koa from 'koa' 28 | import DecRouter from 'koa-dec-router' 29 | 30 | const decRouter = DecRouter({ 31 | controllersDir: `${__dirname}/controllers`, 32 | before: null, // global middleware 33 | after: null, // global middleware 34 | }) 35 | 36 | const app = new Koa() 37 | 38 | // decRouter.router: `koa-router` instance 39 | app.use(decRouter.router.routes()) 40 | app.use(decRouter.router.allowedMethods()) 41 | 42 | ``` 43 | 44 | controllers/api.js 45 | ```js 46 | import { controller, get, post } from 'dec-router' 47 | 48 | async function apiHandler(ctx, next) { 49 | console.log('handle all api and subclass\'s') 50 | await next() 51 | } 52 | 53 | @controller('/api', apiHandler) 54 | export default class Api { 55 | async getApiCommon(ctx) { 56 | // ... 57 | return // some common data 58 | } 59 | } 60 | 61 | ``` 62 | 63 | controllers/posts.js 64 | 65 | ```js 66 | 67 | import { controller, get, post } from 'dec-router' 68 | import Api from './api' 69 | 70 | async function postHandler(ctx, next) { 71 | console.log('handle post') 72 | await next() 73 | } 74 | 75 | // define multi controller class in one file. You can passing {expose: false} to disable exposing this controller, which can still be inherit. 76 | @controller('/subpost') 77 | export class Subpost { 78 | @get('s') 79 | async list(ctx) { 80 | ctx.body = 'get subpost' 81 | } 82 | 83 | } 84 | 85 | @controller('/post') 86 | export default class Post extends Api { 87 | 88 | @get('s') // final path = parent controller path + controller path + method path 89 | async list(ctx) { 90 | const commonData = await super.getApiCommon() 91 | ctx.body = 'get posts' 92 | } 93 | 94 | @get('/:id', {priority: -1}) // wildcard using low priority, let `special` method handle first 95 | async get(ctx) { 96 | ctx.body = 'get' + ctx.params.id 97 | } 98 | 99 | @get('/special') 100 | async special(ctx) { 101 | ctx.body = 'special post' 102 | } 103 | } 104 | 105 | ``` 106 | 107 | ## Console output 108 | 109 | To output all routes generated by dec-router, you can run your app like 110 | 111 | ```sh 112 | DEBUG=dec-router,your-app:* node ./your-app.js 113 | ``` 114 | For windows, using [cross-env](https://github.com/kentcdodds/cross-env) 115 | 116 | ```sh 117 | cross-env DEBUG=dec-router,your-app:* node ./your-app.js 118 | ``` 119 | 120 | ![](docs/dev.png) 121 | 122 | 123 | [See more about `DEBUG`](https://github.com/visionmedia/debug) 124 | 125 | 126 | ## API Reference 127 | 128 | ### DecRouter(options) 129 | * options: {object} 130 | * controllersDir: {string} controllers directory 131 | * before: {function} optional, first middleware for all controller methods 132 | * after: {function} optional, last middleware for all controller methods (before controller method) 133 | * autoLoadControllers: {bool} optional, default is true 134 | 135 | ### @controller(path, opts, ...middlewares) 136 | 137 | > Controller decorator. 138 | 139 | * path: {string} optional, path of this controller, default is `'/' + slug(cls.name)`, can be inherited 140 | * opts: {object} optional, options, cannot be inherited 141 | * ignoreParentPath: {bool} optional, default is false 142 | * ignoreParentMdws: {bool} optional, default is false 143 | * expose: {bool} optional, expose as a route default is false 144 | * middlewares: {Array} optional, koa middlewares, can be inherited 145 | 146 | 147 | ### @route(method, path, opts, ...middlewares) 148 | > Controller method decorator, default would totally override superclass's method with **same path** (not same name), including method, opts, middlewares, etc. 149 | * method: {string}, one of `'get', 'head', 'post', 'put', 'delete', 'patch', 'use'`; 150 | * path: {string} optional, path of this method, default is `'/' + slug(method.name)` 151 | * opts: {object} optional, options 152 | * priority: {number} optional, larger before smaller, default is 0 153 | * ignoreCtrlPath: {bool} optional, ignore all controller path, including superclass's, default is false 154 | * middlewares: {Array} optional, koa middlewares 155 | 156 | 157 | ### @get(path, opts, ..middlewares) 158 | alias of @route('get', path, opts, ...middlewares) 159 | 160 | ### @head(path, opts, ..middlewares) 161 | alias of @route('head', path, opts, ...middlewares) 162 | 163 | ### @post(path, opts, ..middlewares) 164 | alias of @route('post', path, opts, ...middlewares) 165 | 166 | ### @put(path, opts, ..middlewares) 167 | alias of @route('put', path, opts, ...middlewares) 168 | 169 | ### @del(path, opts, ..middlewares) 170 | alias of @route('delete', path, opts, ...middlewares) 171 | 172 | ### @patch(path, opts, ..middlewares) 173 | alias of @route('patch', path, opts, ...middlewares) 174 | 175 | ### @all(path, opts, ..middlewares) 176 | alias of @route('use', path, opts, ...middlewares) 177 | -------------------------------------------------------------------------------- /docs/dev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zaaack/koa-dec-router/756623fef86006973b840a31d5027eee90a59730/docs/dev.png -------------------------------------------------------------------------------- /lib/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | Object.defineProperty(exports, "__esModule", { 4 | value: true 5 | }); 6 | exports.all = exports.patch = exports.del = exports.put = exports.post = exports.head = exports.get = exports.OPTIONS = exports.MIDDLEWARES = exports.CTRL_PATH = exports.ROUTES = undefined; 7 | 8 | var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of'); 9 | 10 | var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); 11 | 12 | var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator'); 13 | 14 | var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); 15 | 16 | var _assign = require('babel-runtime/core-js/object/assign'); 17 | 18 | var _assign2 = _interopRequireDefault(_assign); 19 | 20 | var _keys = require('babel-runtime/core-js/object/keys'); 21 | 22 | var _keys2 = _interopRequireDefault(_keys); 23 | 24 | var _symbol = require('babel-runtime/core-js/symbol'); 25 | 26 | var _symbol2 = _interopRequireDefault(_symbol); 27 | 28 | exports.route = route; 29 | exports.controller = controller; 30 | 31 | exports.default = function (opts) { 32 | const options = (0, _assign2.default)({}, defaultOptions, opts); 33 | if (options.autoLoadControllers) { 34 | options.loadControllers(options); 35 | } 36 | return options; 37 | }; 38 | 39 | var _koaRouter = require('koa-router'); 40 | 41 | var _koaRouter2 = _interopRequireDefault(_koaRouter); 42 | 43 | var _requireDirAll = require('require-dir-all'); 44 | 45 | var _requireDirAll2 = _interopRequireDefault(_requireDirAll); 46 | 47 | var _debug = require('debug'); 48 | 49 | var _debug2 = _interopRequireDefault(_debug); 50 | 51 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 52 | 53 | const debug = (0, _debug2.default)('dec-router'); 54 | const ROUTES = exports.ROUTES = (0, _symbol2.default)('routes'); 55 | const CTRL_PATH = exports.CTRL_PATH = (0, _symbol2.default)('rootPath'); 56 | const MIDDLEWARES = exports.MIDDLEWARES = (0, _symbol2.default)('middlewares'); 57 | const OPTIONS = exports.OPTIONS = (0, _symbol2.default)('options'); 58 | 59 | function uniqBy(arr, fn) { 60 | // an override mode uniqBy, make sure sub class's route override super class's 61 | const map = {}; 62 | arr.forEach(it => { 63 | map[fn(it)] = it; 64 | }); 65 | return (0, _keys2.default)(map).map(k => map[k]); 66 | } 67 | 68 | function slug(str) { 69 | return str.replace(/([A-Z])/g, ($$, $1) => { 70 | return '-' + $1.toLowerCase(); 71 | }); 72 | } 73 | 74 | const defaultOptions = { 75 | controllersDir: '', 76 | before: null, 77 | after: null, 78 | autoLoadControllers: true, 79 | router: new _koaRouter2.default(), 80 | registerRoute(router, route) { 81 | router[route.method](route.path, ...route.middlewares); 82 | }, 83 | loadControllers(options) { 84 | let routes = []; 85 | 86 | function registerCtrl(Ctrl) { 87 | // only for classes has @controller 88 | if (Ctrl instanceof Function && Ctrl.hasOwnProperty(CTRL_PATH) && Ctrl[OPTIONS].expose) { 89 | const ctrl = new Ctrl(); 90 | routes = routes.concat((ctrl[ROUTES] || []).map(route => { 91 | const middlewares = Ctrl[MIDDLEWARES].concat(route.middlewares).map(mw => mw.bind(ctrl)); 92 | if (options.before) { 93 | middlewares.unshift(options.before); 94 | } 95 | if (options.after) { 96 | middlewares.splice(middlewares.length - 1, options.after); 97 | } 98 | return (0, _assign2.default)({}, route, { 99 | path: route.opts.ignoreCtrlPath ? route.path : Ctrl[CTRL_PATH] + route.path, 100 | middlewares }); 101 | })); 102 | } 103 | } 104 | 105 | (0, _requireDirAll2.default)(options.controllersDir, { 106 | recursive: true, 107 | map: ({ name, exports: Ctrl, filepath }) => { 108 | let Ctrls = []; 109 | if (typeof Ctrl === 'function') { 110 | Ctrls.push(Ctrl); 111 | } 112 | Ctrls.concat((0, _keys2.default)(Ctrl).map(k => Ctrl[k])).forEach(registerCtrl); 113 | } 114 | }); 115 | uniqBy(routes, r => r.method + r.path) // override and unique 116 | .sort((a, b) => b.priority - a.priority).forEach(route => { 117 | debug(route.method, route.path, route.funcName, route.priority); 118 | options.registerRoute(options.router, route, options); 119 | }); 120 | } 121 | }; 122 | 123 | const defaultRouteOpts = { priority: 0, ignoreCtrlPath: false }; 124 | 125 | function route(method = 'use', path = null, opts = defaultRouteOpts, ...args) { 126 | switch (typeof path) { 127 | case 'function': 128 | args.unshift(opts); 129 | path = null; 130 | break; 131 | case 'object': 132 | opts = path; 133 | path = null; 134 | break; 135 | case 'number': 136 | opts = { priority: opts }; 137 | path = null; 138 | break; 139 | default: 140 | } 141 | switch (typeof opts) { 142 | case 'function': 143 | args.unshift(opts); 144 | opts = defaultRouteOpts; 145 | break; 146 | case 'number': 147 | opts = { priority: opts }; 148 | break; 149 | default: 150 | } 151 | return (target, name) => { 152 | let handler = (() => { 153 | var _ref = (0, _asyncToGenerator3.default)(function* (ctx, next) { 154 | const func = target[name]; 155 | func.middlewares = args; // for override access 156 | yield func.call(this, ctx, next); 157 | }); 158 | 159 | return function handler(_x, _x2) { 160 | return _ref.apply(this, arguments); 161 | }; 162 | })(); 163 | 164 | const routes = target[ROUTES] || []; 165 | if (path === null) { 166 | path = '/' + slug(target[name].name); // using method name 167 | } 168 | opts = (0, _assign2.default)({}, defaultRouteOpts, opts); 169 | 170 | const route = { 171 | method, 172 | path, 173 | opts, 174 | priority: opts.priority, 175 | funcName: name, 176 | middlewares: args.concat([handler]) 177 | }; 178 | target[ROUTES] = routes.concat(route); 179 | }; 180 | } 181 | 182 | const get = exports.get = (...args) => route('get', ...args); 183 | const head = exports.head = (...args) => route('head', ...args); 184 | const post = exports.post = (...args) => route('post', ...args); 185 | const put = exports.put = (...args) => route('put', ...args); 186 | const del = exports.del = (...args) => route('delete', ...args); 187 | const patch = exports.patch = (...args) => route('patch', ...args); 188 | const all = exports.all = (...args) => route('use', ...args); 189 | 190 | const defaultCtrlOpts = { 191 | ignoreParentPath: false, 192 | ignoreParentMdws: false, 193 | expose: true }; 194 | 195 | function controller(path = '/', opts = defaultCtrlOpts, ...args) { 196 | switch (typeof path) { 197 | case 'function': 198 | args.unshift(opts); 199 | path = null; 200 | break; 201 | case 'object': 202 | opts = path; 203 | path = null; 204 | break; 205 | default: 206 | } 207 | if (typeof opts === 'function') { 208 | args.unshift(opts); 209 | opts = defaultCtrlOpts; 210 | } 211 | opts = (0, _assign2.default)({}, defaultCtrlOpts, opts); 212 | return cls => { 213 | if (path === null) { 214 | path = '/' + slug(cls.name); // using class name 215 | } 216 | const father = (0, _getPrototypeOf2.default)(cls); 217 | const fatherCtrlPath = opts.ignoreParentPath ? '' : father[CTRL_PATH] || ''; 218 | const fatherCtrlMws = opts.ignoreParentMdws ? [] : father[MIDDLEWARES] || []; 219 | cls[CTRL_PATH] = fatherCtrlPath + path; // for controller inherit 220 | cls[MIDDLEWARES] = fatherCtrlMws.concat(args); 221 | cls[OPTIONS] = opts; 222 | }; 223 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "koa-dec-router", 3 | "version": "0.0.4", 4 | "description": "An ES6 decorator + class based router, support inherit, override, priority, auto load controllers, etc.", 5 | "main": "lib/index.js", 6 | "scripts": { 7 | "build": "cross-env NODE_ENV=production babel -d ./lib -s false -D ./src && git add -A", 8 | "test": "cross-env NODE_ENV=development DEBUG=dec-router ava --serial", 9 | "cover": "cross-env NODE_ENV=development nyc ava --serial" 10 | }, 11 | "precommit": [ 12 | "build" 13 | ], 14 | "repository": { 15 | "type": "git", 16 | "url": "git+https://github.com/zaaack/dec-router.git" 17 | }, 18 | "keywords": [ 19 | "koa", 20 | "router", 21 | "decorator", 22 | "es6", 23 | "es7", 24 | "koa-router" 25 | ], 26 | "author": "zaaack", 27 | "license": "MIT", 28 | "bugs": { 29 | "url": "https://github.com/zaaack/dec-router/issues" 30 | }, 31 | "homepage": "https://github.com/zaaack/dec-router#readme", 32 | "bundledDependencies": [ 33 | "babel-runtime", 34 | "debug", 35 | "koa-router", 36 | "require-dir-all" 37 | ], 38 | "dependencies": { 39 | "babel-runtime": "^6.23.0", 40 | "debug": "^2.6.3", 41 | "koa-router": "next", 42 | "require-dir-all": "^0.4.11" 43 | }, 44 | "devDependencies": { 45 | "ava": "^0.18.2", 46 | "babel-cli": "^6.24.0", 47 | "babel-plugin-transform-class-properties": "^6.23.0", 48 | "babel-plugin-transform-decorators-legacy": "^1.3.4", 49 | "babel-plugin-transform-runtime": "^6.23.0", 50 | "babel-preset-es2015-node6": "^0.4.0", 51 | "babel-preset-stage-0": "^6.22.0", 52 | "cross-env": "^3.2.4", 53 | "eslint": "^3.18.0", 54 | "koa": "^2", 55 | "nyc": "^10.2.0", 56 | "pre-commit": "^1.2.2", 57 | "supertest": "^3.0.0" 58 | }, 59 | "ava": { 60 | "files": [ 61 | "test/**/test.*.js", 62 | "test/**/test.js" 63 | ], 64 | "require": "babel-register", 65 | "babel": "inherit" 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | import Router from 'koa-router' 2 | import requireDirAll from 'require-dir-all' 3 | import appDebug from 'debug' 4 | const debug = appDebug('dec-router') 5 | export const ROUTES = Symbol('routes') 6 | export const CTRL_PATH = Symbol('rootPath') 7 | export const MIDDLEWARES = Symbol('middlewares') 8 | export const OPTIONS = Symbol('options') 9 | 10 | function uniqBy(arr, fn) { // an override mode uniqBy, make sure sub class's route override super class's 11 | const map = {} 12 | arr.forEach(it => { 13 | map[fn(it)] = it 14 | }) 15 | return Object.keys(map).map(k => map[k]) 16 | } 17 | 18 | function slug(str) { 19 | return str.replace(/([A-Z])/g, ($$, $1) => { 20 | return '-' + $1.toLowerCase() 21 | }) 22 | } 23 | 24 | const defaultOptions = { 25 | controllersDir: '', 26 | before: null, 27 | after: null, 28 | autoLoadControllers: true, 29 | router: new Router(), 30 | registerRoute (router, route) { 31 | router[route.method](route.path, ...route.middlewares) 32 | }, 33 | loadControllers (options) { 34 | let routes = [] 35 | 36 | function registerCtrl(Ctrl) { 37 | // only for classes has @controller 38 | if ( 39 | Ctrl instanceof Function && 40 | Ctrl.hasOwnProperty(CTRL_PATH) && 41 | Ctrl[OPTIONS].expose 42 | ) { 43 | const ctrl = new Ctrl() 44 | routes = routes 45 | .concat((ctrl[ROUTES] || []) 46 | .map(route => { 47 | const middlewares = Ctrl[MIDDLEWARES] 48 | .concat(route.middlewares) 49 | .map(mw => mw.bind(ctrl)) 50 | if (options.before) { 51 | middlewares.unshift(options.before) 52 | } 53 | if (options.after) { 54 | middlewares.splice(middlewares.length - 1, options.after) 55 | } 56 | return Object.assign({}, route, { 57 | path: route.opts.ignoreCtrlPath ? route.path : Ctrl[CTRL_PATH] + route.path, 58 | middlewares, // fix this, 59 | }) 60 | })) 61 | } 62 | } 63 | 64 | requireDirAll(options.controllersDir, { 65 | recursive: true, 66 | map: ({ name, exports: Ctrl, filepath }) => { 67 | let Ctrls = [] 68 | if (typeof Ctrl === 'function') { 69 | Ctrls.push(Ctrl) 70 | } 71 | Ctrls 72 | .concat(Object.keys(Ctrl).map(k => Ctrl[k])) 73 | .forEach(registerCtrl) 74 | }, 75 | }) 76 | uniqBy(routes, r => r.method + r.path) // override and unique 77 | .sort((a, b) => b.priority - a.priority).forEach(route => { 78 | debug(route.method, route.path, route.funcName, route.priority) 79 | options.registerRoute(options.router, route, options) 80 | }) 81 | }, 82 | } 83 | 84 | const defaultRouteOpts = {priority: 0, ignoreCtrlPath: false} 85 | 86 | export function route ( 87 | method = 'use', 88 | path = null, opts = defaultRouteOpts, ...args 89 | ) { 90 | switch (typeof path) { 91 | case 'function': 92 | args.unshift(opts) 93 | path = null 94 | break 95 | case 'object': 96 | opts = path 97 | path = null 98 | break 99 | case 'number': 100 | opts = { priority: opts } 101 | path = null 102 | break 103 | default: 104 | } 105 | switch (typeof opts) { 106 | case 'function': 107 | args.unshift(opts) 108 | opts = defaultRouteOpts 109 | break 110 | case 'number': 111 | opts = { priority: opts } 112 | break 113 | default: 114 | } 115 | return (target, name) => { 116 | const routes = target[ROUTES] || [] 117 | if (path === null) { 118 | path = '/' + slug(target[name].name) // using method name 119 | } 120 | opts = Object.assign({}, defaultRouteOpts, opts) 121 | async function handler(ctx, next) { 122 | const func = target[name] 123 | func.middlewares = args // for override access 124 | await func.call(this, ctx, next) 125 | } 126 | const route = { 127 | method, 128 | path, 129 | opts, 130 | priority: opts.priority, 131 | funcName: name, 132 | middlewares: args.concat([handler]), 133 | } 134 | target[ROUTES] = routes.concat(route) 135 | } 136 | } 137 | 138 | export const get = (...args) => route('get', ...args) 139 | export const head = (...args) => route('head', ...args) 140 | export const post = (...args) => route('post', ...args) 141 | export const put = (...args) => route('put', ...args) 142 | export const del = (...args) => route('delete', ...args) 143 | export const patch = (...args) => route('patch', ...args) 144 | export const all = (...args) => route('use', ...args) 145 | 146 | const defaultCtrlOpts = { 147 | ignoreParentPath: false, 148 | ignoreParentMdws: false, 149 | expose: true, // false won't create routes 150 | } 151 | 152 | export function controller ( 153 | path = '/', opts = defaultCtrlOpts, ...args 154 | ) { 155 | switch (typeof path) { 156 | case 'function': 157 | args.unshift(opts) 158 | path = null 159 | break 160 | case 'object': 161 | opts = path 162 | path = null 163 | break 164 | default: 165 | } 166 | if (typeof opts === 'function') { 167 | args.unshift(opts) 168 | opts = defaultCtrlOpts 169 | } 170 | opts = Object.assign({}, defaultCtrlOpts, opts) 171 | return cls => { 172 | if (path === null) { 173 | path = '/' + slug(cls.name) // using class name 174 | } 175 | const father = Object.getPrototypeOf(cls) 176 | const fatherCtrlPath = opts.ignoreParentPath 177 | ? '' 178 | : (father[CTRL_PATH] || '') 179 | const fatherCtrlMws = opts.ignoreParentMdws 180 | ? [] 181 | : (father[MIDDLEWARES] || []) 182 | cls[CTRL_PATH] = fatherCtrlPath + path // for controller inherit 183 | cls[MIDDLEWARES] = fatherCtrlMws.concat(args) 184 | cls[OPTIONS] = opts 185 | } 186 | } 187 | 188 | export default function (opts) { 189 | const options = Object.assign({}, defaultOptions, opts) 190 | if (options.autoLoadControllers) { 191 | options.loadControllers(options) 192 | } 193 | return options 194 | } 195 | -------------------------------------------------------------------------------- /test/app/controllers/Hello.js: -------------------------------------------------------------------------------- 1 | import { controller, get, post } from '../../../src' 2 | 3 | async function apiMdw(ctx, next) { 4 | await next() 5 | ctx.body += ' api' 6 | } 7 | 8 | async function ctrlMdw(ctx, next) { 9 | await next() 10 | ctx.body += ' ctrl' 11 | } 12 | 13 | async function methodMdw(ctx, next) { 14 | await next() 15 | ctx.body += ' method' 16 | } 17 | 18 | @controller('/api') 19 | class ApiController { 20 | @get('/inherit') 21 | async inherit(ctx) { 22 | ctx.body = 'inherit' 23 | } 24 | 25 | @get('/override') 26 | async override(ctx) { 27 | ctx.body = 'override' 28 | } 29 | 30 | @get() 31 | async methodName(ctx) { 32 | ctx.body = 'method name' 33 | } 34 | } 35 | 36 | @controller('/hello') 37 | export default class HelloController { 38 | 39 | @get('/ha') 40 | async list(ctx) { 41 | ctx.body = 'Hello' 42 | } 43 | 44 | @get() // using sluggified function name 45 | async methodName(ctx) { 46 | ctx.body = 'method name' 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /test/app/controllers/HelloWithMiddlewares.js: -------------------------------------------------------------------------------- 1 | import { controller, get, post } from '../../../src' 2 | 3 | async function apiMdw(ctx, next) { 4 | await next() 5 | ctx.body += ' api' 6 | } 7 | 8 | async function ctrlMdw(ctx, next) { 9 | await next() 10 | ctx.body += ' ctrl' 11 | } 12 | 13 | async function methodMdw(ctx, next) { 14 | await next() 15 | ctx.body += ' method' 16 | } 17 | 18 | @controller('/hello-mdws', ctrlMdw) 19 | export default class HelloController { 20 | 21 | @get('/ha', methodMdw) 22 | async list(ctx) { 23 | ctx.body = 'ha' 24 | } 25 | 26 | @get('/hi') 27 | async hi(ctx) { 28 | ctx.body = 'hi' 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /test/app/controllers/Inherit.js: -------------------------------------------------------------------------------- 1 | import { controller, get, post } from '../../../src' 2 | 3 | async function apiMdw(ctx, next) { 4 | await next() 5 | ctx.body += ' api' 6 | } 7 | 8 | async function ctrlMdw(ctx, next) { 9 | await next() 10 | ctx.body += ' ctrl' 11 | } 12 | 13 | async function methodMdw(ctx, next) { 14 | await next() 15 | ctx.body += ' method' 16 | } 17 | 18 | // override only, won't expose routes like `/api/inherit`, `/api/override`, controller options cannot be inherit 19 | @controller('/api', { expose: false }, apiMdw) 20 | export class ApiController { // export class would create routes too. 21 | 22 | @get('/inherit') 23 | async inherit(ctx) { 24 | ctx.body = 'inherit' 25 | } 26 | 27 | @get('/override') 28 | async override(ctx) { 29 | ctx.body = 'override' 30 | } 31 | } 32 | 33 | @controller('/inherit', ctrlMdw) 34 | export default class InheritController extends ApiController { 35 | 36 | @get('/ha', methodMdw) 37 | async list(ctx) { 38 | ctx.body = 'ha' 39 | } 40 | 41 | @get('/override') // override all in super's method (handler, middleares, options, etc.) 42 | async override(ctx) { 43 | ctx.body = 'ha' 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /test/app/controllers/Priority.js: -------------------------------------------------------------------------------- 1 | import { controller, get, post } from '../../../src' 2 | 3 | @controller('/priority') 4 | export class PriorityController1 { 5 | 6 | @get('/right/*', {priority: -10}) 7 | async right(ctx) { 8 | ctx.body = 'right' 9 | } 10 | 11 | @get('/wrong/*', {priority: 0}) // default priority is 0 12 | async wrong(ctx) { 13 | ctx.body = 'wrong' 14 | } 15 | } 16 | 17 | @controller('/priority') 18 | export default class PriorityController2 { 19 | @get('/right/p1') 20 | async right(ctx) { 21 | ctx.body = 'right p1' 22 | } 23 | 24 | @get('/wrong/p1') 25 | async wrong(ctx) { 26 | ctx.body = 'wrong p1' 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /test/app/index.js: -------------------------------------------------------------------------------- 1 | import Koa from 'koa' 2 | import DecRouter from '../../src' 3 | const app = new Koa() 4 | const decRouter = DecRouter({ 5 | controllersDir: `${__dirname}/controllers`, 6 | async before(ctx, next) { 7 | await next() 8 | }, 9 | async after(ctx, next) { 10 | await next() 11 | }, 12 | }) 13 | 14 | app.use(decRouter.router.routes()) 15 | app.use(decRouter.router.allowedMethods()) 16 | 17 | const PORT = process.env.DEBUG_PORT || 3456 18 | app.listen(PORT) 19 | console.log('Listen at ', PORT) 20 | export default app 21 | -------------------------------------------------------------------------------- /test/test.js: -------------------------------------------------------------------------------- 1 | import test from 'ava' 2 | import app from './app' 3 | import supertest from 'supertest' 4 | 5 | const agent = supertest(app.listen()) 6 | 7 | test('simple', async t => { 8 | let res = await agent.get('/hello/ha').expect(200) 9 | t.is(res.text, 'Hello') 10 | res = await agent.get('/hello/method-name').expect(200) 11 | t.is(res.text, 'method name') 12 | }) 13 | 14 | test('middleware', async t => { 15 | let res = await agent.get('/hello-mdws/ha').expect(200) 16 | t.is(res.text, 'ha method ctrl') 17 | res = await agent.get('/hello-mdws/hi').expect(200) 18 | t.is(res.text, 'hi ctrl') 19 | }) 20 | 21 | test('inherit', async t => { 22 | let res = await agent.get('/api/inherit/ha').expect(200) 23 | t.is(res.text, 'ha method ctrl api') 24 | res = await agent.get('/api/inherit/inherit').expect(200) 25 | t.is(res.text, 'inherit ctrl api') 26 | res = await agent.get('/api/inherit/override').expect(200) 27 | t.is(res.text, 'ha ctrl api') 28 | }) 29 | 30 | test('priority', async t => { 31 | let res = await agent.get('/priority/right/p1').expect(200) 32 | t.is(res.text, 'right p1') 33 | res = await agent.get('/priority/wrong/p1').expect(200) 34 | t.is(res.text, 'wrong') 35 | }) 36 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@ava/babel-preset-stage-4@^1.0.0": 6 | version "1.0.0" 7 | resolved "http://registry.npm.taobao.org/@ava/babel-preset-stage-4/download/@ava/babel-preset-stage-4-1.0.0.tgz#a613b5e152f529305422546b072d47facfb26291" 8 | dependencies: 9 | babel-plugin-check-es2015-constants "^6.8.0" 10 | babel-plugin-syntax-trailing-function-commas "^6.20.0" 11 | babel-plugin-transform-async-to-generator "^6.16.0" 12 | babel-plugin-transform-es2015-destructuring "^6.19.0" 13 | babel-plugin-transform-es2015-function-name "^6.9.0" 14 | babel-plugin-transform-es2015-modules-commonjs "^6.18.0" 15 | babel-plugin-transform-es2015-parameters "^6.21.0" 16 | babel-plugin-transform-es2015-spread "^6.8.0" 17 | babel-plugin-transform-es2015-sticky-regex "^6.8.0" 18 | babel-plugin-transform-es2015-unicode-regex "^6.11.0" 19 | babel-plugin-transform-exponentiation-operator "^6.8.0" 20 | package-hash "^1.2.0" 21 | 22 | "@ava/babel-preset-transform-test-files@^2.0.0": 23 | version "2.0.1" 24 | resolved "http://registry.npm.taobao.org/@ava/babel-preset-transform-test-files/download/@ava/babel-preset-transform-test-files-2.0.1.tgz#d75232cc6d71dc9c7eae4b76a9004fd81501d0c1" 25 | dependencies: 26 | babel-plugin-ava-throws-helper "^1.0.0" 27 | babel-plugin-espower "^2.3.2" 28 | package-hash "^1.2.0" 29 | 30 | "@ava/pretty-format@^1.1.0": 31 | version "1.1.0" 32 | resolved "http://registry.npm.taobao.org/@ava/pretty-format/download/@ava/pretty-format-1.1.0.tgz#d0a57d25eb9aeab9643bdd1a030642b91c123e28" 33 | dependencies: 34 | ansi-styles "^2.2.1" 35 | esutils "^2.0.2" 36 | 37 | abbrev@1: 38 | version "1.1.0" 39 | resolved "http://registry.npm.taobao.org/abbrev/download/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f" 40 | 41 | accepts@^1.2.2: 42 | version "1.3.3" 43 | resolved "http://registry.npm.taobao.org/accepts/download/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca" 44 | dependencies: 45 | mime-types "~2.1.11" 46 | negotiator "0.6.1" 47 | 48 | acorn-jsx@^3.0.0: 49 | version "3.0.1" 50 | resolved "http://registry.npm.taobao.org/acorn-jsx/download/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" 51 | dependencies: 52 | acorn "^3.0.4" 53 | 54 | acorn@4.0.4: 55 | version "4.0.4" 56 | resolved "http://registry.npm.taobao.org/acorn/download/acorn-4.0.4.tgz#17a8d6a7a6c4ef538b814ec9abac2779293bf30a" 57 | 58 | acorn@^3.0.4: 59 | version "3.3.0" 60 | resolved "http://registry.npm.taobao.org/acorn/download/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" 61 | 62 | ajv-keywords@^1.0.0: 63 | version "1.5.1" 64 | resolved "http://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" 65 | 66 | ajv@^4.7.0, ajv@^4.9.1: 67 | version "4.11.5" 68 | resolved "http://registry.npm.taobao.org/ajv/download/ajv-4.11.5.tgz#b6ee74657b993a01dce44b7944d56f485828d5bd" 69 | dependencies: 70 | co "^4.6.0" 71 | json-stable-stringify "^1.0.1" 72 | 73 | align-text@^0.1.1, align-text@^0.1.3: 74 | version "0.1.4" 75 | resolved "http://registry.npm.taobao.org/align-text/download/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" 76 | dependencies: 77 | kind-of "^3.0.2" 78 | longest "^1.0.1" 79 | repeat-string "^1.5.2" 80 | 81 | amdefine@>=0.0.4: 82 | version "1.0.1" 83 | resolved "http://registry.npm.taobao.org/amdefine/download/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" 84 | 85 | ansi-align@^1.1.0: 86 | version "1.1.0" 87 | resolved "http://registry.npm.taobao.org/ansi-align/download/ansi-align-1.1.0.tgz#2f0c1658829739add5ebb15e6b0c6e3423f016ba" 88 | dependencies: 89 | string-width "^1.0.1" 90 | 91 | ansi-escapes@^1.1.0: 92 | version "1.4.0" 93 | resolved "http://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" 94 | 95 | ansi-regex@^2.0.0: 96 | version "2.1.1" 97 | resolved "http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 98 | 99 | ansi-styles@^2.2.1: 100 | version "2.2.1" 101 | resolved "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" 102 | 103 | ansi-styles@~1.0.0: 104 | version "1.0.0" 105 | resolved "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178" 106 | 107 | any-promise@^1.1.0: 108 | version "1.3.0" 109 | resolved "http://registry.npm.taobao.org/any-promise/download/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" 110 | 111 | anymatch@^1.3.0: 112 | version "1.3.0" 113 | resolved "http://registry.npm.taobao.org/anymatch/download/anymatch-1.3.0.tgz#a3e52fa39168c825ff57b0248126ce5a8ff95507" 114 | dependencies: 115 | arrify "^1.0.0" 116 | micromatch "^2.1.5" 117 | 118 | append-transform@^0.4.0: 119 | version "0.4.0" 120 | resolved "http://registry.npm.taobao.org/append-transform/download/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991" 121 | dependencies: 122 | default-require-extensions "^1.0.0" 123 | 124 | aproba@^1.0.3: 125 | version "1.1.1" 126 | resolved "http://registry.npm.taobao.org/aproba/download/aproba-1.1.1.tgz#95d3600f07710aa0e9298c726ad5ecf2eacbabab" 127 | 128 | archy@^1.0.0: 129 | version "1.0.0" 130 | resolved "http://registry.npm.taobao.org/archy/download/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" 131 | 132 | are-we-there-yet@~1.1.2: 133 | version "1.1.2" 134 | resolved "http://registry.npm.taobao.org/are-we-there-yet/download/are-we-there-yet-1.1.2.tgz#80e470e95a084794fe1899262c5667c6e88de1b3" 135 | dependencies: 136 | delegates "^1.0.0" 137 | readable-stream "^2.0.0 || ^1.1.13" 138 | 139 | argparse@^1.0.7: 140 | version "1.0.9" 141 | resolved "http://registry.npm.taobao.org/argparse/download/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" 142 | dependencies: 143 | sprintf-js "~1.0.2" 144 | 145 | arr-diff@^2.0.0: 146 | version "2.0.0" 147 | resolved "http://registry.npm.taobao.org/arr-diff/download/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" 148 | dependencies: 149 | arr-flatten "^1.0.1" 150 | 151 | arr-exclude@^1.0.0: 152 | version "1.0.0" 153 | resolved "http://registry.npm.taobao.org/arr-exclude/download/arr-exclude-1.0.0.tgz#dfc7c2e552a270723ccda04cf3128c8cbfe5c631" 154 | 155 | arr-flatten@^1.0.1: 156 | version "1.0.1" 157 | resolved "http://registry.npm.taobao.org/arr-flatten/download/arr-flatten-1.0.1.tgz#e5ffe54d45e19f32f216e91eb99c8ce892bb604b" 158 | 159 | array-differ@^1.0.0: 160 | version "1.0.0" 161 | resolved "http://registry.npm.taobao.org/array-differ/download/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" 162 | 163 | array-find-index@^1.0.1: 164 | version "1.0.2" 165 | resolved "http://registry.npm.taobao.org/array-find-index/download/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" 166 | 167 | array-union@^1.0.1: 168 | version "1.0.2" 169 | resolved "http://registry.npm.taobao.org/array-union/download/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" 170 | dependencies: 171 | array-uniq "^1.0.1" 172 | 173 | array-uniq@^1.0.1, array-uniq@^1.0.2: 174 | version "1.0.3" 175 | resolved "http://registry.npm.taobao.org/array-uniq/download/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" 176 | 177 | array-unique@^0.2.1: 178 | version "0.2.1" 179 | resolved "http://registry.npm.taobao.org/array-unique/download/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" 180 | 181 | arrify@^1.0.0, arrify@^1.0.1: 182 | version "1.0.1" 183 | resolved "http://registry.npm.taobao.org/arrify/download/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" 184 | 185 | asn1@~0.2.3: 186 | version "0.2.3" 187 | resolved "http://registry.npm.taobao.org/asn1/download/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" 188 | 189 | assert-plus@1.0.0, assert-plus@^1.0.0: 190 | version "1.0.0" 191 | resolved "http://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" 192 | 193 | assert-plus@^0.2.0: 194 | version "0.2.0" 195 | resolved "http://registry.npm.taobao.org/assert-plus/download/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" 196 | 197 | async-each@^1.0.0: 198 | version "1.0.1" 199 | resolved "http://registry.npm.taobao.org/async-each/download/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" 200 | 201 | async@^1.4.0: 202 | version "1.5.2" 203 | resolved "http://registry.npm.taobao.org/async/download/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" 204 | 205 | asynckit@^0.4.0: 206 | version "0.4.0" 207 | resolved "http://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 208 | 209 | auto-bind@^1.1.0: 210 | version "1.1.0" 211 | resolved "http://registry.npm.taobao.org/auto-bind/download/auto-bind-1.1.0.tgz#93b864dc7ee01a326281775d5c75ca0a751e5961" 212 | 213 | ava-init@^0.2.0: 214 | version "0.2.0" 215 | resolved "http://registry.npm.taobao.org/ava-init/download/ava-init-0.2.0.tgz#9304c8b4c357d66e3dfdae1fbff47b1199d5c55d" 216 | dependencies: 217 | arr-exclude "^1.0.0" 218 | execa "^0.5.0" 219 | has-yarn "^1.0.0" 220 | read-pkg-up "^2.0.0" 221 | write-pkg "^2.0.0" 222 | 223 | ava@^0.18.2: 224 | version "0.18.2" 225 | resolved "http://registry.npm.taobao.org/ava/download/ava-0.18.2.tgz#79253d1636077034a2780bb55b5c3e6c3d7f312f" 226 | dependencies: 227 | "@ava/babel-preset-stage-4" "^1.0.0" 228 | "@ava/babel-preset-transform-test-files" "^2.0.0" 229 | "@ava/pretty-format" "^1.1.0" 230 | arr-flatten "^1.0.1" 231 | array-union "^1.0.1" 232 | array-uniq "^1.0.2" 233 | arrify "^1.0.0" 234 | auto-bind "^1.1.0" 235 | ava-init "^0.2.0" 236 | babel-code-frame "^6.16.0" 237 | babel-core "^6.17.0" 238 | bluebird "^3.0.0" 239 | caching-transform "^1.0.0" 240 | chalk "^1.0.0" 241 | chokidar "^1.4.2" 242 | clean-stack "^1.1.1" 243 | clean-yaml-object "^0.1.0" 244 | cli-cursor "^2.1.0" 245 | cli-spinners "^1.0.0" 246 | cli-truncate "^0.2.0" 247 | co-with-promise "^4.6.0" 248 | code-excerpt "^2.1.0" 249 | common-path-prefix "^1.0.0" 250 | convert-source-map "^1.2.0" 251 | core-assert "^0.2.0" 252 | currently-unhandled "^0.4.1" 253 | debug "^2.2.0" 254 | diff "^3.0.1" 255 | dot-prop "^4.1.0" 256 | empower-core "^0.6.1" 257 | equal-length "^1.0.0" 258 | figures "^2.0.0" 259 | find-cache-dir "^0.1.1" 260 | fn-name "^2.0.0" 261 | get-port "^2.1.0" 262 | globby "^6.0.0" 263 | has-flag "^2.0.0" 264 | ignore-by-default "^1.0.0" 265 | indent-string "^3.0.0" 266 | is-ci "^1.0.7" 267 | is-generator-fn "^1.0.0" 268 | is-obj "^1.0.0" 269 | is-observable "^0.2.0" 270 | is-promise "^2.1.0" 271 | jest-snapshot "^18.1.0" 272 | last-line-stream "^1.0.0" 273 | lodash.debounce "^4.0.3" 274 | lodash.difference "^4.3.0" 275 | lodash.flatten "^4.2.0" 276 | lodash.isequal "^4.5.0" 277 | loud-rejection "^1.2.0" 278 | matcher "^0.1.1" 279 | max-timeout "^1.0.0" 280 | md5-hex "^2.0.0" 281 | meow "^3.7.0" 282 | ms "^0.7.1" 283 | multimatch "^2.1.0" 284 | observable-to-promise "^0.4.0" 285 | option-chain "^0.1.0" 286 | package-hash "^1.2.0" 287 | pkg-conf "^2.0.0" 288 | plur "^2.0.0" 289 | pretty-ms "^2.0.0" 290 | require-precompiled "^0.1.0" 291 | resolve-cwd "^1.0.0" 292 | slash "^1.0.0" 293 | source-map-support "^0.4.0" 294 | stack-utils "^1.0.0" 295 | strip-ansi "^3.0.1" 296 | strip-bom-buf "^1.0.0" 297 | time-require "^0.1.2" 298 | unique-temp-dir "^1.0.0" 299 | update-notifier "^1.0.0" 300 | 301 | aws-sign2@~0.6.0: 302 | version "0.6.0" 303 | resolved "http://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" 304 | 305 | aws4@^1.2.1: 306 | version "1.6.0" 307 | resolved "http://registry.npm.taobao.org/aws4/download/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" 308 | 309 | babel-cli@^6.24.0: 310 | version "6.24.0" 311 | resolved "http://registry.npm.taobao.org/babel-cli/download/babel-cli-6.24.0.tgz#a05ffd210dca0c288a26d5319c5ac8669a265ad0" 312 | dependencies: 313 | babel-core "^6.24.0" 314 | babel-polyfill "^6.23.0" 315 | babel-register "^6.24.0" 316 | babel-runtime "^6.22.0" 317 | commander "^2.8.1" 318 | convert-source-map "^1.1.0" 319 | fs-readdir-recursive "^1.0.0" 320 | glob "^7.0.0" 321 | lodash "^4.2.0" 322 | output-file-sync "^1.1.0" 323 | path-is-absolute "^1.0.0" 324 | slash "^1.0.0" 325 | source-map "^0.5.0" 326 | v8flags "^2.0.10" 327 | optionalDependencies: 328 | chokidar "^1.6.1" 329 | 330 | babel-code-frame@^6.16.0, babel-code-frame@^6.22.0: 331 | version "6.22.0" 332 | resolved "http://registry.npm.taobao.org/babel-code-frame/download/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4" 333 | dependencies: 334 | chalk "^1.1.0" 335 | esutils "^2.0.2" 336 | js-tokens "^3.0.0" 337 | 338 | babel-core@^6.17.0, babel-core@^6.24.0: 339 | version "6.24.0" 340 | resolved "http://registry.npm.taobao.org/babel-core/download/babel-core-6.24.0.tgz#8f36a0a77f5c155aed6f920b844d23ba56742a02" 341 | dependencies: 342 | babel-code-frame "^6.22.0" 343 | babel-generator "^6.24.0" 344 | babel-helpers "^6.23.0" 345 | babel-messages "^6.23.0" 346 | babel-register "^6.24.0" 347 | babel-runtime "^6.22.0" 348 | babel-template "^6.23.0" 349 | babel-traverse "^6.23.1" 350 | babel-types "^6.23.0" 351 | babylon "^6.11.0" 352 | convert-source-map "^1.1.0" 353 | debug "^2.1.1" 354 | json5 "^0.5.0" 355 | lodash "^4.2.0" 356 | minimatch "^3.0.2" 357 | path-is-absolute "^1.0.0" 358 | private "^0.1.6" 359 | slash "^1.0.0" 360 | source-map "^0.5.0" 361 | 362 | babel-generator@^6.1.0, babel-generator@^6.18.0, babel-generator@^6.24.0: 363 | version "6.24.0" 364 | resolved "http://registry.npm.taobao.org/babel-generator/download/babel-generator-6.24.0.tgz#eba270a8cc4ce6e09a61be43465d7c62c1f87c56" 365 | dependencies: 366 | babel-messages "^6.23.0" 367 | babel-runtime "^6.22.0" 368 | babel-types "^6.23.0" 369 | detect-indent "^4.0.0" 370 | jsesc "^1.3.0" 371 | lodash "^4.2.0" 372 | source-map "^0.5.0" 373 | trim-right "^1.0.1" 374 | 375 | babel-helper-bindify-decorators@^6.22.0: 376 | version "6.22.0" 377 | resolved "http://registry.npm.taobao.org/babel-helper-bindify-decorators/download/babel-helper-bindify-decorators-6.22.0.tgz#d7f5bc261275941ac62acfc4e20dacfb8a3fe952" 378 | dependencies: 379 | babel-runtime "^6.22.0" 380 | babel-traverse "^6.22.0" 381 | babel-types "^6.22.0" 382 | 383 | babel-helper-builder-binary-assignment-operator-visitor@^6.22.0: 384 | version "6.22.0" 385 | resolved "http://registry.npm.taobao.org/babel-helper-builder-binary-assignment-operator-visitor/download/babel-helper-builder-binary-assignment-operator-visitor-6.22.0.tgz#29df56be144d81bdeac08262bfa41d2c5e91cdcd" 386 | dependencies: 387 | babel-helper-explode-assignable-expression "^6.22.0" 388 | babel-runtime "^6.22.0" 389 | babel-types "^6.22.0" 390 | 391 | babel-helper-call-delegate@^6.22.0: 392 | version "6.22.0" 393 | resolved "http://registry.npm.taobao.org/babel-helper-call-delegate/download/babel-helper-call-delegate-6.22.0.tgz#119921b56120f17e9dae3f74b4f5cc7bcc1b37ef" 394 | dependencies: 395 | babel-helper-hoist-variables "^6.22.0" 396 | babel-runtime "^6.22.0" 397 | babel-traverse "^6.22.0" 398 | babel-types "^6.22.0" 399 | 400 | babel-helper-explode-assignable-expression@^6.22.0: 401 | version "6.22.0" 402 | resolved "http://registry.npm.taobao.org/babel-helper-explode-assignable-expression/download/babel-helper-explode-assignable-expression-6.22.0.tgz#c97bf76eed3e0bae4048121f2b9dae1a4e7d0478" 403 | dependencies: 404 | babel-runtime "^6.22.0" 405 | babel-traverse "^6.22.0" 406 | babel-types "^6.22.0" 407 | 408 | babel-helper-explode-class@^6.22.0: 409 | version "6.22.0" 410 | resolved "http://registry.npm.taobao.org/babel-helper-explode-class/download/babel-helper-explode-class-6.22.0.tgz#646304924aa6388a516843ba7f1855ef8dfeb69b" 411 | dependencies: 412 | babel-helper-bindify-decorators "^6.22.0" 413 | babel-runtime "^6.22.0" 414 | babel-traverse "^6.22.0" 415 | babel-types "^6.22.0" 416 | 417 | babel-helper-function-name@^6.22.0, babel-helper-function-name@^6.23.0: 418 | version "6.23.0" 419 | resolved "http://registry.npm.taobao.org/babel-helper-function-name/download/babel-helper-function-name-6.23.0.tgz#25742d67175c8903dbe4b6cb9d9e1fcb8dcf23a6" 420 | dependencies: 421 | babel-helper-get-function-arity "^6.22.0" 422 | babel-runtime "^6.22.0" 423 | babel-template "^6.23.0" 424 | babel-traverse "^6.23.0" 425 | babel-types "^6.23.0" 426 | 427 | babel-helper-get-function-arity@^6.22.0: 428 | version "6.22.0" 429 | resolved "http://registry.npm.taobao.org/babel-helper-get-function-arity/download/babel-helper-get-function-arity-6.22.0.tgz#0beb464ad69dc7347410ac6ade9f03a50634f5ce" 430 | dependencies: 431 | babel-runtime "^6.22.0" 432 | babel-types "^6.22.0" 433 | 434 | babel-helper-hoist-variables@^6.22.0: 435 | version "6.22.0" 436 | resolved "http://registry.npm.taobao.org/babel-helper-hoist-variables/download/babel-helper-hoist-variables-6.22.0.tgz#3eacbf731d80705845dd2e9718f600cfb9b4ba72" 437 | dependencies: 438 | babel-runtime "^6.22.0" 439 | babel-types "^6.22.0" 440 | 441 | babel-helper-regex@^6.22.0: 442 | version "6.22.0" 443 | resolved "http://registry.npm.taobao.org/babel-helper-regex/download/babel-helper-regex-6.22.0.tgz#79f532be1647b1f0ee3474b5f5c3da58001d247d" 444 | dependencies: 445 | babel-runtime "^6.22.0" 446 | babel-types "^6.22.0" 447 | lodash "^4.2.0" 448 | 449 | babel-helper-remap-async-to-generator@^6.22.0: 450 | version "6.22.0" 451 | resolved "http://registry.npm.taobao.org/babel-helper-remap-async-to-generator/download/babel-helper-remap-async-to-generator-6.22.0.tgz#2186ae73278ed03b8b15ced089609da981053383" 452 | dependencies: 453 | babel-helper-function-name "^6.22.0" 454 | babel-runtime "^6.22.0" 455 | babel-template "^6.22.0" 456 | babel-traverse "^6.22.0" 457 | babel-types "^6.22.0" 458 | 459 | babel-helpers@^6.23.0: 460 | version "6.23.0" 461 | resolved "http://registry.npm.taobao.org/babel-helpers/download/babel-helpers-6.23.0.tgz#4f8f2e092d0b6a8808a4bde79c27f1e2ecf0d992" 462 | dependencies: 463 | babel-runtime "^6.22.0" 464 | babel-template "^6.23.0" 465 | 466 | babel-messages@^6.23.0: 467 | version "6.23.0" 468 | resolved "http://registry.npm.taobao.org/babel-messages/download/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" 469 | dependencies: 470 | babel-runtime "^6.22.0" 471 | 472 | babel-plugin-ava-throws-helper@^1.0.0: 473 | version "1.0.0" 474 | resolved "http://registry.npm.taobao.org/babel-plugin-ava-throws-helper/download/babel-plugin-ava-throws-helper-1.0.0.tgz#8fe6e79d2fd19838b5c3649f89cfb03fd563e241" 475 | dependencies: 476 | babel-template "^6.7.0" 477 | babel-types "^6.7.2" 478 | 479 | babel-plugin-check-es2015-constants@^6.8.0: 480 | version "6.22.0" 481 | resolved "http://registry.npm.taobao.org/babel-plugin-check-es2015-constants/download/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" 482 | dependencies: 483 | babel-runtime "^6.22.0" 484 | 485 | babel-plugin-espower@^2.3.2: 486 | version "2.3.2" 487 | resolved "http://registry.npm.taobao.org/babel-plugin-espower/download/babel-plugin-espower-2.3.2.tgz#5516b8fcdb26c9f0e1d8160749f6e4c65e71271e" 488 | dependencies: 489 | babel-generator "^6.1.0" 490 | babylon "^6.1.0" 491 | call-matcher "^1.0.0" 492 | core-js "^2.0.0" 493 | espower-location-detector "^1.0.0" 494 | espurify "^1.6.0" 495 | estraverse "^4.1.1" 496 | 497 | babel-plugin-syntax-async-functions@^6.8.0: 498 | version "6.13.0" 499 | resolved "http://registry.npm.taobao.org/babel-plugin-syntax-async-functions/download/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" 500 | 501 | babel-plugin-syntax-async-generators@^6.5.0: 502 | version "6.13.0" 503 | resolved "http://registry.npm.taobao.org/babel-plugin-syntax-async-generators/download/babel-plugin-syntax-async-generators-6.13.0.tgz#6bc963ebb16eccbae6b92b596eb7f35c342a8b9a" 504 | 505 | babel-plugin-syntax-class-constructor-call@^6.18.0: 506 | version "6.18.0" 507 | resolved "http://registry.npm.taobao.org/babel-plugin-syntax-class-constructor-call/download/babel-plugin-syntax-class-constructor-call-6.18.0.tgz#9cb9d39fe43c8600bec8146456ddcbd4e1a76416" 508 | 509 | babel-plugin-syntax-class-properties@^6.8.0: 510 | version "6.13.0" 511 | resolved "http://registry.npm.taobao.org/babel-plugin-syntax-class-properties/download/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de" 512 | 513 | babel-plugin-syntax-decorators@^6.1.18, babel-plugin-syntax-decorators@^6.13.0: 514 | version "6.13.0" 515 | resolved "http://registry.npm.taobao.org/babel-plugin-syntax-decorators/download/babel-plugin-syntax-decorators-6.13.0.tgz#312563b4dbde3cc806cee3e416cceeaddd11ac0b" 516 | 517 | babel-plugin-syntax-do-expressions@^6.8.0: 518 | version "6.13.0" 519 | resolved "http://registry.npm.taobao.org/babel-plugin-syntax-do-expressions/download/babel-plugin-syntax-do-expressions-6.13.0.tgz#5747756139aa26d390d09410b03744ba07e4796d" 520 | 521 | babel-plugin-syntax-dynamic-import@^6.18.0: 522 | version "6.18.0" 523 | resolved "http://registry.npm.taobao.org/babel-plugin-syntax-dynamic-import/download/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da" 524 | 525 | babel-plugin-syntax-exponentiation-operator@^6.8.0: 526 | version "6.13.0" 527 | resolved "http://registry.npm.taobao.org/babel-plugin-syntax-exponentiation-operator/download/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" 528 | 529 | babel-plugin-syntax-export-extensions@^6.8.0: 530 | version "6.13.0" 531 | resolved "http://registry.npm.taobao.org/babel-plugin-syntax-export-extensions/download/babel-plugin-syntax-export-extensions-6.13.0.tgz#70a1484f0f9089a4e84ad44bac353c95b9b12721" 532 | 533 | babel-plugin-syntax-function-bind@^6.8.0: 534 | version "6.13.0" 535 | resolved "http://registry.npm.taobao.org/babel-plugin-syntax-function-bind/download/babel-plugin-syntax-function-bind-6.13.0.tgz#48c495f177bdf31a981e732f55adc0bdd2601f46" 536 | 537 | babel-plugin-syntax-object-rest-spread@^6.8.0: 538 | version "6.13.0" 539 | resolved "http://registry.npm.taobao.org/babel-plugin-syntax-object-rest-spread/download/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" 540 | 541 | babel-plugin-syntax-trailing-function-commas@^6.20.0, babel-plugin-syntax-trailing-function-commas@^6.22.0: 542 | version "6.22.0" 543 | resolved "http://registry.npm.taobao.org/babel-plugin-syntax-trailing-function-commas/download/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" 544 | 545 | babel-plugin-transform-async-generator-functions@^6.22.0: 546 | version "6.22.0" 547 | resolved "http://registry.npm.taobao.org/babel-plugin-transform-async-generator-functions/download/babel-plugin-transform-async-generator-functions-6.22.0.tgz#a720a98153a7596f204099cd5409f4b3c05bab46" 548 | dependencies: 549 | babel-helper-remap-async-to-generator "^6.22.0" 550 | babel-plugin-syntax-async-generators "^6.5.0" 551 | babel-runtime "^6.22.0" 552 | 553 | babel-plugin-transform-async-to-generator@^6.16.0, babel-plugin-transform-async-to-generator@^6.22.0: 554 | version "6.22.0" 555 | resolved "http://registry.npm.taobao.org/babel-plugin-transform-async-to-generator/download/babel-plugin-transform-async-to-generator-6.22.0.tgz#194b6938ec195ad36efc4c33a971acf00d8cd35e" 556 | dependencies: 557 | babel-helper-remap-async-to-generator "^6.22.0" 558 | babel-plugin-syntax-async-functions "^6.8.0" 559 | babel-runtime "^6.22.0" 560 | 561 | babel-plugin-transform-class-constructor-call@^6.22.0: 562 | version "6.22.0" 563 | resolved "http://registry.npm.taobao.org/babel-plugin-transform-class-constructor-call/download/babel-plugin-transform-class-constructor-call-6.22.0.tgz#11a4d2216abb5b0eef298b493748f4f2f4869120" 564 | dependencies: 565 | babel-plugin-syntax-class-constructor-call "^6.18.0" 566 | babel-runtime "^6.22.0" 567 | babel-template "^6.22.0" 568 | 569 | babel-plugin-transform-class-properties@^6.22.0, babel-plugin-transform-class-properties@^6.23.0: 570 | version "6.23.0" 571 | resolved "http://registry.npm.taobao.org/babel-plugin-transform-class-properties/download/babel-plugin-transform-class-properties-6.23.0.tgz#187b747ee404399013563c993db038f34754ac3b" 572 | dependencies: 573 | babel-helper-function-name "^6.23.0" 574 | babel-plugin-syntax-class-properties "^6.8.0" 575 | babel-runtime "^6.22.0" 576 | babel-template "^6.23.0" 577 | 578 | babel-plugin-transform-decorators-legacy@^1.3.4: 579 | version "1.3.4" 580 | resolved "http://registry.npm.taobao.org/babel-plugin-transform-decorators-legacy/download/babel-plugin-transform-decorators-legacy-1.3.4.tgz#741b58f6c5bce9e6027e0882d9c994f04f366925" 581 | dependencies: 582 | babel-plugin-syntax-decorators "^6.1.18" 583 | babel-runtime "^6.2.0" 584 | babel-template "^6.3.0" 585 | 586 | babel-plugin-transform-decorators@^6.22.0: 587 | version "6.22.0" 588 | resolved "http://registry.npm.taobao.org/babel-plugin-transform-decorators/download/babel-plugin-transform-decorators-6.22.0.tgz#c03635b27a23b23b7224f49232c237a73988d27c" 589 | dependencies: 590 | babel-helper-explode-class "^6.22.0" 591 | babel-plugin-syntax-decorators "^6.13.0" 592 | babel-runtime "^6.22.0" 593 | babel-template "^6.22.0" 594 | babel-types "^6.22.0" 595 | 596 | babel-plugin-transform-do-expressions@^6.22.0: 597 | version "6.22.0" 598 | resolved "http://registry.npm.taobao.org/babel-plugin-transform-do-expressions/download/babel-plugin-transform-do-expressions-6.22.0.tgz#28ccaf92812d949c2cd1281f690c8fdc468ae9bb" 599 | dependencies: 600 | babel-plugin-syntax-do-expressions "^6.8.0" 601 | babel-runtime "^6.22.0" 602 | 603 | babel-plugin-transform-es2015-destructuring@^6.19.0, babel-plugin-transform-es2015-destructuring@^6.6.5: 604 | version "6.23.0" 605 | resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-destructuring/download/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" 606 | dependencies: 607 | babel-runtime "^6.22.0" 608 | 609 | babel-plugin-transform-es2015-function-name@^6.5.0, babel-plugin-transform-es2015-function-name@^6.9.0: 610 | version "6.22.0" 611 | resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-function-name/download/babel-plugin-transform-es2015-function-name-6.22.0.tgz#f5fcc8b09093f9a23c76ac3d9e392c3ec4b77104" 612 | dependencies: 613 | babel-helper-function-name "^6.22.0" 614 | babel-runtime "^6.22.0" 615 | babel-types "^6.22.0" 616 | 617 | babel-plugin-transform-es2015-modules-commonjs@^6.18.0, babel-plugin-transform-es2015-modules-commonjs@^6.7.4: 618 | version "6.24.0" 619 | resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-commonjs/download/babel-plugin-transform-es2015-modules-commonjs-6.24.0.tgz#e921aefb72c2cc26cb03d107626156413222134f" 620 | dependencies: 621 | babel-plugin-transform-strict-mode "^6.22.0" 622 | babel-runtime "^6.22.0" 623 | babel-template "^6.23.0" 624 | babel-types "^6.23.0" 625 | 626 | babel-plugin-transform-es2015-parameters@^6.21.0, babel-plugin-transform-es2015-parameters@^6.8.0: 627 | version "6.23.0" 628 | resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-parameters/download/babel-plugin-transform-es2015-parameters-6.23.0.tgz#3a2aabb70c8af945d5ce386f1a4250625a83ae3b" 629 | dependencies: 630 | babel-helper-call-delegate "^6.22.0" 631 | babel-helper-get-function-arity "^6.22.0" 632 | babel-runtime "^6.22.0" 633 | babel-template "^6.23.0" 634 | babel-traverse "^6.23.0" 635 | babel-types "^6.23.0" 636 | 637 | babel-plugin-transform-es2015-spread@^6.8.0: 638 | version "6.22.0" 639 | resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-spread/download/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" 640 | dependencies: 641 | babel-runtime "^6.22.0" 642 | 643 | babel-plugin-transform-es2015-sticky-regex@^6.8.0: 644 | version "6.22.0" 645 | resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-sticky-regex/download/babel-plugin-transform-es2015-sticky-regex-6.22.0.tgz#ab316829e866ee3f4b9eb96939757d19a5bc4593" 646 | dependencies: 647 | babel-helper-regex "^6.22.0" 648 | babel-runtime "^6.22.0" 649 | babel-types "^6.22.0" 650 | 651 | babel-plugin-transform-es2015-unicode-regex@^6.11.0: 652 | version "6.22.0" 653 | resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-unicode-regex/download/babel-plugin-transform-es2015-unicode-regex-6.22.0.tgz#8d9cc27e7ee1decfe65454fb986452a04a613d20" 654 | dependencies: 655 | babel-helper-regex "^6.22.0" 656 | babel-runtime "^6.22.0" 657 | regexpu-core "^2.0.0" 658 | 659 | babel-plugin-transform-exponentiation-operator@^6.22.0, babel-plugin-transform-exponentiation-operator@^6.8.0: 660 | version "6.22.0" 661 | resolved "http://registry.npm.taobao.org/babel-plugin-transform-exponentiation-operator/download/babel-plugin-transform-exponentiation-operator-6.22.0.tgz#d57c8335281918e54ef053118ce6eb108468084d" 662 | dependencies: 663 | babel-helper-builder-binary-assignment-operator-visitor "^6.22.0" 664 | babel-plugin-syntax-exponentiation-operator "^6.8.0" 665 | babel-runtime "^6.22.0" 666 | 667 | babel-plugin-transform-export-extensions@^6.22.0: 668 | version "6.22.0" 669 | resolved "http://registry.npm.taobao.org/babel-plugin-transform-export-extensions/download/babel-plugin-transform-export-extensions-6.22.0.tgz#53738b47e75e8218589eea946cbbd39109bbe653" 670 | dependencies: 671 | babel-plugin-syntax-export-extensions "^6.8.0" 672 | babel-runtime "^6.22.0" 673 | 674 | babel-plugin-transform-function-bind@^6.22.0: 675 | version "6.22.0" 676 | resolved "http://registry.npm.taobao.org/babel-plugin-transform-function-bind/download/babel-plugin-transform-function-bind-6.22.0.tgz#c6fb8e96ac296a310b8cf8ea401462407ddf6a97" 677 | dependencies: 678 | babel-plugin-syntax-function-bind "^6.8.0" 679 | babel-runtime "^6.22.0" 680 | 681 | babel-plugin-transform-object-rest-spread@^6.22.0: 682 | version "6.23.0" 683 | resolved "http://registry.npm.taobao.org/babel-plugin-transform-object-rest-spread/download/babel-plugin-transform-object-rest-spread-6.23.0.tgz#875d6bc9be761c58a2ae3feee5dc4895d8c7f921" 684 | dependencies: 685 | babel-plugin-syntax-object-rest-spread "^6.8.0" 686 | babel-runtime "^6.22.0" 687 | 688 | babel-plugin-transform-runtime@^6.23.0: 689 | version "6.23.0" 690 | resolved "http://registry.npm.taobao.org/babel-plugin-transform-runtime/download/babel-plugin-transform-runtime-6.23.0.tgz#88490d446502ea9b8e7efb0fe09ec4d99479b1ee" 691 | dependencies: 692 | babel-runtime "^6.22.0" 693 | 694 | babel-plugin-transform-strict-mode@^6.22.0: 695 | version "6.22.0" 696 | resolved "http://registry.npm.taobao.org/babel-plugin-transform-strict-mode/download/babel-plugin-transform-strict-mode-6.22.0.tgz#e008df01340fdc87e959da65991b7e05970c8c7c" 697 | dependencies: 698 | babel-runtime "^6.22.0" 699 | babel-types "^6.22.0" 700 | 701 | babel-polyfill@^6.23.0: 702 | version "6.23.0" 703 | resolved "http://registry.npm.taobao.org/babel-polyfill/download/babel-polyfill-6.23.0.tgz#8364ca62df8eafb830499f699177466c3b03499d" 704 | dependencies: 705 | babel-runtime "^6.22.0" 706 | core-js "^2.4.0" 707 | regenerator-runtime "^0.10.0" 708 | 709 | babel-preset-es2015-node6@^0.4.0: 710 | version "0.4.0" 711 | resolved "http://registry.npm.taobao.org/babel-preset-es2015-node6/download/babel-preset-es2015-node6-0.4.0.tgz#f8893f81b6533747924c657348867bd63b4f9dc2" 712 | dependencies: 713 | babel-plugin-transform-es2015-destructuring "^6.6.5" 714 | babel-plugin-transform-es2015-function-name "^6.5.0" 715 | babel-plugin-transform-es2015-modules-commonjs "^6.7.4" 716 | babel-plugin-transform-es2015-parameters "^6.8.0" 717 | 718 | babel-preset-stage-0@^6.22.0: 719 | version "6.22.0" 720 | resolved "http://registry.npm.taobao.org/babel-preset-stage-0/download/babel-preset-stage-0-6.22.0.tgz#707eeb5b415da769eff9c42f4547f644f9296ef9" 721 | dependencies: 722 | babel-plugin-transform-do-expressions "^6.22.0" 723 | babel-plugin-transform-function-bind "^6.22.0" 724 | babel-preset-stage-1 "^6.22.0" 725 | 726 | babel-preset-stage-1@^6.22.0: 727 | version "6.22.0" 728 | resolved "http://registry.npm.taobao.org/babel-preset-stage-1/download/babel-preset-stage-1-6.22.0.tgz#7da05bffea6ad5a10aef93e320cfc6dd465dbc1a" 729 | dependencies: 730 | babel-plugin-transform-class-constructor-call "^6.22.0" 731 | babel-plugin-transform-export-extensions "^6.22.0" 732 | babel-preset-stage-2 "^6.22.0" 733 | 734 | babel-preset-stage-2@^6.22.0: 735 | version "6.22.0" 736 | resolved "http://registry.npm.taobao.org/babel-preset-stage-2/download/babel-preset-stage-2-6.22.0.tgz#ccd565f19c245cade394b21216df704a73b27c07" 737 | dependencies: 738 | babel-plugin-syntax-dynamic-import "^6.18.0" 739 | babel-plugin-transform-class-properties "^6.22.0" 740 | babel-plugin-transform-decorators "^6.22.0" 741 | babel-preset-stage-3 "^6.22.0" 742 | 743 | babel-preset-stage-3@^6.22.0: 744 | version "6.22.0" 745 | resolved "http://registry.npm.taobao.org/babel-preset-stage-3/download/babel-preset-stage-3-6.22.0.tgz#a4e92bbace7456fafdf651d7a7657ee0bbca9c2e" 746 | dependencies: 747 | babel-plugin-syntax-trailing-function-commas "^6.22.0" 748 | babel-plugin-transform-async-generator-functions "^6.22.0" 749 | babel-plugin-transform-async-to-generator "^6.22.0" 750 | babel-plugin-transform-exponentiation-operator "^6.22.0" 751 | babel-plugin-transform-object-rest-spread "^6.22.0" 752 | 753 | babel-register@^6.24.0: 754 | version "6.24.0" 755 | resolved "http://registry.npm.taobao.org/babel-register/download/babel-register-6.24.0.tgz#5e89f8463ba9970356d02eb07dabe3308b080cfd" 756 | dependencies: 757 | babel-core "^6.24.0" 758 | babel-runtime "^6.22.0" 759 | core-js "^2.4.0" 760 | home-or-tmp "^2.0.0" 761 | lodash "^4.2.0" 762 | mkdirp "^0.5.1" 763 | source-map-support "^0.4.2" 764 | 765 | babel-runtime@^6.2.0, babel-runtime@^6.22.0, babel-runtime@^6.23.0: 766 | version "6.23.0" 767 | resolved "http://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.23.0.tgz#0a9489f144de70efb3ce4300accdb329e2fc543b" 768 | dependencies: 769 | core-js "^2.4.0" 770 | regenerator-runtime "^0.10.0" 771 | 772 | babel-template@^6.16.0, babel-template@^6.22.0, babel-template@^6.23.0, babel-template@^6.3.0, babel-template@^6.7.0: 773 | version "6.23.0" 774 | resolved "http://registry.npm.taobao.org/babel-template/download/babel-template-6.23.0.tgz#04d4f270adbb3aa704a8143ae26faa529238e638" 775 | dependencies: 776 | babel-runtime "^6.22.0" 777 | babel-traverse "^6.23.0" 778 | babel-types "^6.23.0" 779 | babylon "^6.11.0" 780 | lodash "^4.2.0" 781 | 782 | babel-traverse@^6.18.0, babel-traverse@^6.22.0, babel-traverse@^6.23.0, babel-traverse@^6.23.1: 783 | version "6.23.1" 784 | resolved "http://registry.npm.taobao.org/babel-traverse/download/babel-traverse-6.23.1.tgz#d3cb59010ecd06a97d81310065f966b699e14f48" 785 | dependencies: 786 | babel-code-frame "^6.22.0" 787 | babel-messages "^6.23.0" 788 | babel-runtime "^6.22.0" 789 | babel-types "^6.23.0" 790 | babylon "^6.15.0" 791 | debug "^2.2.0" 792 | globals "^9.0.0" 793 | invariant "^2.2.0" 794 | lodash "^4.2.0" 795 | 796 | babel-types@^6.18.0, babel-types@^6.22.0, babel-types@^6.23.0, babel-types@^6.7.2: 797 | version "6.23.0" 798 | resolved "http://registry.npm.taobao.org/babel-types/download/babel-types-6.23.0.tgz#bb17179d7538bad38cd0c9e115d340f77e7e9acf" 799 | dependencies: 800 | babel-runtime "^6.22.0" 801 | esutils "^2.0.2" 802 | lodash "^4.2.0" 803 | to-fast-properties "^1.0.1" 804 | 805 | babylon@^6.1.0, babylon@^6.11.0, babylon@^6.13.0, babylon@^6.15.0: 806 | version "6.16.1" 807 | resolved "http://registry.npm.taobao.org/babylon/download/babylon-6.16.1.tgz#30c5a22f481978a9e7f8cdfdf496b11d94b404d3" 808 | 809 | balanced-match@^0.4.1: 810 | version "0.4.2" 811 | resolved "http://registry.npm.taobao.org/balanced-match/download/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" 812 | 813 | bcrypt-pbkdf@^1.0.0: 814 | version "1.0.1" 815 | resolved "http://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" 816 | dependencies: 817 | tweetnacl "^0.14.3" 818 | 819 | binary-extensions@^1.0.0: 820 | version "1.8.0" 821 | resolved "http://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774" 822 | 823 | block-stream@*: 824 | version "0.0.9" 825 | resolved "http://registry.npm.taobao.org/block-stream/download/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" 826 | dependencies: 827 | inherits "~2.0.0" 828 | 829 | bluebird@^3.0.0: 830 | version "3.5.0" 831 | resolved "http://registry.npm.taobao.org/bluebird/download/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c" 832 | 833 | boom@2.x.x: 834 | version "2.10.1" 835 | resolved "http://registry.npm.taobao.org/boom/download/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" 836 | dependencies: 837 | hoek "2.x.x" 838 | 839 | boxen@^0.6.0: 840 | version "0.6.0" 841 | resolved "http://registry.npm.taobao.org/boxen/download/boxen-0.6.0.tgz#8364d4248ac34ff0ef1b2f2bf49a6c60ce0d81b6" 842 | dependencies: 843 | ansi-align "^1.1.0" 844 | camelcase "^2.1.0" 845 | chalk "^1.1.1" 846 | cli-boxes "^1.0.0" 847 | filled-array "^1.0.0" 848 | object-assign "^4.0.1" 849 | repeating "^2.0.0" 850 | string-width "^1.0.1" 851 | widest-line "^1.0.0" 852 | 853 | brace-expansion@^1.0.0: 854 | version "1.1.6" 855 | resolved "http://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.6.tgz#7197d7eaa9b87e648390ea61fc66c84427420df9" 856 | dependencies: 857 | balanced-match "^0.4.1" 858 | concat-map "0.0.1" 859 | 860 | braces@^1.8.2: 861 | version "1.8.5" 862 | resolved "http://registry.npm.taobao.org/braces/download/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" 863 | dependencies: 864 | expand-range "^1.8.1" 865 | preserve "^0.2.0" 866 | repeat-element "^1.1.2" 867 | 868 | buf-compare@^1.0.0: 869 | version "1.0.1" 870 | resolved "http://registry.npm.taobao.org/buf-compare/download/buf-compare-1.0.1.tgz#fef28da8b8113a0a0db4430b0b6467b69730b34a" 871 | 872 | buffer-shims@^1.0.0: 873 | version "1.0.0" 874 | resolved "http://registry.npm.taobao.org/buffer-shims/download/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" 875 | 876 | builtin-modules@^1.0.0: 877 | version "1.1.1" 878 | resolved "http://registry.npm.taobao.org/builtin-modules/download/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" 879 | 880 | caching-transform@^1.0.0: 881 | version "1.0.1" 882 | resolved "http://registry.npm.taobao.org/caching-transform/download/caching-transform-1.0.1.tgz#6dbdb2f20f8d8fbce79f3e94e9d1742dcdf5c0a1" 883 | dependencies: 884 | md5-hex "^1.2.0" 885 | mkdirp "^0.5.1" 886 | write-file-atomic "^1.1.4" 887 | 888 | call-matcher@^1.0.0: 889 | version "1.0.1" 890 | resolved "http://registry.npm.taobao.org/call-matcher/download/call-matcher-1.0.1.tgz#5134d077984f712a54dad3cbf62de28dce416ca8" 891 | dependencies: 892 | core-js "^2.0.0" 893 | deep-equal "^1.0.0" 894 | espurify "^1.6.0" 895 | estraverse "^4.0.0" 896 | 897 | call-signature@0.0.2: 898 | version "0.0.2" 899 | resolved "http://registry.npm.taobao.org/call-signature/download/call-signature-0.0.2.tgz#a84abc825a55ef4cb2b028bd74e205a65b9a4996" 900 | 901 | caller-path@^0.1.0: 902 | version "0.1.0" 903 | resolved "http://registry.npm.taobao.org/caller-path/download/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" 904 | dependencies: 905 | callsites "^0.2.0" 906 | 907 | callsites@^0.2.0: 908 | version "0.2.0" 909 | resolved "http://registry.npm.taobao.org/callsites/download/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" 910 | 911 | camelcase-keys@^2.0.0: 912 | version "2.1.0" 913 | resolved "http://registry.npm.taobao.org/camelcase-keys/download/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" 914 | dependencies: 915 | camelcase "^2.0.0" 916 | map-obj "^1.0.0" 917 | 918 | camelcase@^1.0.2: 919 | version "1.2.1" 920 | resolved "http://registry.npm.taobao.org/camelcase/download/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" 921 | 922 | camelcase@^2.0.0, camelcase@^2.1.0: 923 | version "2.1.1" 924 | resolved "http://registry.npm.taobao.org/camelcase/download/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" 925 | 926 | camelcase@^3.0.0: 927 | version "3.0.0" 928 | resolved "http://registry.npm.taobao.org/camelcase/download/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" 929 | 930 | capture-stack-trace@^1.0.0: 931 | version "1.0.0" 932 | resolved "http://registry.npm.taobao.org/capture-stack-trace/download/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" 933 | 934 | caseless@~0.12.0: 935 | version "0.12.0" 936 | resolved "http://registry.npm.taobao.org/caseless/download/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" 937 | 938 | center-align@^0.1.1: 939 | version "0.1.3" 940 | resolved "http://registry.npm.taobao.org/center-align/download/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" 941 | dependencies: 942 | align-text "^0.1.3" 943 | lazy-cache "^1.0.3" 944 | 945 | chalk@^0.4.0: 946 | version "0.4.0" 947 | resolved "http://registry.npm.taobao.org/chalk/download/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f" 948 | dependencies: 949 | ansi-styles "~1.0.0" 950 | has-color "~0.1.0" 951 | strip-ansi "~0.1.0" 952 | 953 | chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: 954 | version "1.1.3" 955 | resolved "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" 956 | dependencies: 957 | ansi-styles "^2.2.1" 958 | escape-string-regexp "^1.0.2" 959 | has-ansi "^2.0.0" 960 | strip-ansi "^3.0.0" 961 | supports-color "^2.0.0" 962 | 963 | chokidar@^1.4.2, chokidar@^1.6.1: 964 | version "1.6.1" 965 | resolved "http://registry.npm.taobao.org/chokidar/download/chokidar-1.6.1.tgz#2f4447ab5e96e50fb3d789fd90d4c72e0e4c70c2" 966 | dependencies: 967 | anymatch "^1.3.0" 968 | async-each "^1.0.0" 969 | glob-parent "^2.0.0" 970 | inherits "^2.0.1" 971 | is-binary-path "^1.0.0" 972 | is-glob "^2.0.0" 973 | path-is-absolute "^1.0.0" 974 | readdirp "^2.0.0" 975 | optionalDependencies: 976 | fsevents "^1.0.0" 977 | 978 | ci-info@^1.0.0: 979 | version "1.0.0" 980 | resolved "http://registry.npm.taobao.org/ci-info/download/ci-info-1.0.0.tgz#dc5285f2b4e251821683681c381c3388f46ec534" 981 | 982 | circular-json@^0.3.1: 983 | version "0.3.1" 984 | resolved "http://registry.npm.taobao.org/circular-json/download/circular-json-0.3.1.tgz#be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d" 985 | 986 | clean-stack@^1.1.1: 987 | version "1.1.1" 988 | resolved "http://registry.npm.taobao.org/clean-stack/download/clean-stack-1.1.1.tgz#a1b3711122df162df7c7cb9b3c0470f28cb58adb" 989 | 990 | clean-yaml-object@^0.1.0: 991 | version "0.1.0" 992 | resolved "http://registry.npm.taobao.org/clean-yaml-object/download/clean-yaml-object-0.1.0.tgz#63fb110dc2ce1a84dc21f6d9334876d010ae8b68" 993 | 994 | cli-boxes@^1.0.0: 995 | version "1.0.0" 996 | resolved "http://registry.npm.taobao.org/cli-boxes/download/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" 997 | 998 | cli-cursor@^1.0.1: 999 | version "1.0.2" 1000 | resolved "http://registry.npm.taobao.org/cli-cursor/download/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" 1001 | dependencies: 1002 | restore-cursor "^1.0.1" 1003 | 1004 | cli-cursor@^2.1.0: 1005 | version "2.1.0" 1006 | resolved "http://registry.npm.taobao.org/cli-cursor/download/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" 1007 | dependencies: 1008 | restore-cursor "^2.0.0" 1009 | 1010 | cli-spinners@^1.0.0: 1011 | version "1.0.0" 1012 | resolved "http://registry.npm.taobao.org/cli-spinners/download/cli-spinners-1.0.0.tgz#ef987ed3d48391ac3dab9180b406a742180d6e6a" 1013 | 1014 | cli-truncate@^0.2.0: 1015 | version "0.2.1" 1016 | resolved "http://registry.npm.taobao.org/cli-truncate/download/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" 1017 | dependencies: 1018 | slice-ansi "0.0.4" 1019 | string-width "^1.0.1" 1020 | 1021 | cli-width@^2.0.0: 1022 | version "2.1.0" 1023 | resolved "http://registry.npm.taobao.org/cli-width/download/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" 1024 | 1025 | cliui@^2.1.0: 1026 | version "2.1.0" 1027 | resolved "http://registry.npm.taobao.org/cliui/download/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" 1028 | dependencies: 1029 | center-align "^0.1.1" 1030 | right-align "^0.1.1" 1031 | wordwrap "0.0.2" 1032 | 1033 | cliui@^3.2.0: 1034 | version "3.2.0" 1035 | resolved "http://registry.npm.taobao.org/cliui/download/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" 1036 | dependencies: 1037 | string-width "^1.0.1" 1038 | strip-ansi "^3.0.1" 1039 | wrap-ansi "^2.0.0" 1040 | 1041 | co-with-promise@^4.6.0: 1042 | version "4.6.0" 1043 | resolved "http://registry.npm.taobao.org/co-with-promise/download/co-with-promise-4.6.0.tgz#413e7db6f5893a60b942cf492c4bec93db415ab7" 1044 | dependencies: 1045 | pinkie-promise "^1.0.0" 1046 | 1047 | co@^4.6.0: 1048 | version "4.6.0" 1049 | resolved "http://registry.npm.taobao.org/co/download/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" 1050 | 1051 | code-excerpt@^2.1.0: 1052 | version "2.1.0" 1053 | resolved "http://registry.npm.taobao.org/code-excerpt/download/code-excerpt-2.1.0.tgz#5dcc081e88f4a7e3b554e9e35d7ef232d47f8147" 1054 | dependencies: 1055 | convert-to-spaces "^1.0.1" 1056 | 1057 | code-point-at@^1.0.0: 1058 | version "1.1.0" 1059 | resolved "http://registry.npm.taobao.org/code-point-at/download/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 1060 | 1061 | combined-stream@^1.0.5, combined-stream@~1.0.5: 1062 | version "1.0.5" 1063 | resolved "http://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" 1064 | dependencies: 1065 | delayed-stream "~1.0.0" 1066 | 1067 | commander@^2.8.1: 1068 | version "2.9.0" 1069 | resolved "http://registry.npm.taobao.org/commander/download/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" 1070 | dependencies: 1071 | graceful-readlink ">= 1.0.0" 1072 | 1073 | common-path-prefix@^1.0.0: 1074 | version "1.0.0" 1075 | resolved "http://registry.npm.taobao.org/common-path-prefix/download/common-path-prefix-1.0.0.tgz#cd52f6f0712e0baab97d6f9732874f22f47752c0" 1076 | 1077 | commondir@^1.0.1: 1078 | version "1.0.1" 1079 | resolved "http://registry.npm.taobao.org/commondir/download/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" 1080 | 1081 | component-emitter@^1.2.0: 1082 | version "1.2.1" 1083 | resolved "http://registry.npm.taobao.org/component-emitter/download/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" 1084 | 1085 | concat-map@0.0.1: 1086 | version "0.0.1" 1087 | resolved "http://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 1088 | 1089 | concat-stream@^1.4.7, concat-stream@^1.5.2: 1090 | version "1.6.0" 1091 | resolved "http://registry.npm.taobao.org/concat-stream/download/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" 1092 | dependencies: 1093 | inherits "^2.0.3" 1094 | readable-stream "^2.2.2" 1095 | typedarray "^0.0.6" 1096 | 1097 | configstore@^2.0.0: 1098 | version "2.1.0" 1099 | resolved "http://registry.npm.taobao.org/configstore/download/configstore-2.1.0.tgz#737a3a7036e9886102aa6099e47bb33ab1aba1a1" 1100 | dependencies: 1101 | dot-prop "^3.0.0" 1102 | graceful-fs "^4.1.2" 1103 | mkdirp "^0.5.0" 1104 | object-assign "^4.0.1" 1105 | os-tmpdir "^1.0.0" 1106 | osenv "^0.1.0" 1107 | uuid "^2.0.1" 1108 | write-file-atomic "^1.1.2" 1109 | xdg-basedir "^2.0.0" 1110 | 1111 | console-control-strings@^1.0.0, console-control-strings@~1.1.0: 1112 | version "1.1.0" 1113 | resolved "http://registry.npm.taobao.org/console-control-strings/download/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" 1114 | 1115 | content-disposition@~0.5.0: 1116 | version "0.5.2" 1117 | resolved "http://registry.npm.taobao.org/content-disposition/download/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" 1118 | 1119 | content-type@^1.0.0: 1120 | version "1.0.2" 1121 | resolved "http://registry.npm.taobao.org/content-type/download/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed" 1122 | 1123 | convert-source-map@^1.1.0, convert-source-map@^1.2.0, convert-source-map@^1.3.0: 1124 | version "1.4.0" 1125 | resolved "http://registry.npm.taobao.org/convert-source-map/download/convert-source-map-1.4.0.tgz#e3dad195bf61bfe13a7a3c73e9876ec14a0268f3" 1126 | 1127 | convert-to-spaces@^1.0.1: 1128 | version "1.0.2" 1129 | resolved "http://registry.npm.taobao.org/convert-to-spaces/download/convert-to-spaces-1.0.2.tgz#7e3e48bbe6d997b1417ddca2868204b4d3d85715" 1130 | 1131 | cookiejar@^2.0.6: 1132 | version "2.1.0" 1133 | resolved "http://registry.npm.taobao.org/cookiejar/download/cookiejar-2.1.0.tgz#86549689539b6d0e269b6637a304be508194d898" 1134 | 1135 | cookies@~0.7.0: 1136 | version "0.7.0" 1137 | resolved "http://registry.npm.taobao.org/cookies/download/cookies-0.7.0.tgz#0bc961d910c35254980fc7c9eff5da12011bbf00" 1138 | dependencies: 1139 | depd "~1.1.0" 1140 | keygrip "~1.0.1" 1141 | 1142 | core-assert@^0.2.0: 1143 | version "0.2.1" 1144 | resolved "http://registry.npm.taobao.org/core-assert/download/core-assert-0.2.1.tgz#f85e2cf9bfed28f773cc8b3fa5c5b69bdc02fe3f" 1145 | dependencies: 1146 | buf-compare "^1.0.0" 1147 | is-error "^2.2.0" 1148 | 1149 | core-js@^2.0.0, core-js@^2.4.0: 1150 | version "2.4.1" 1151 | resolved "http://registry.npm.taobao.org/core-js/download/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" 1152 | 1153 | core-util-is@~1.0.0: 1154 | version "1.0.2" 1155 | resolved "http://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 1156 | 1157 | create-error-class@^3.0.1: 1158 | version "3.0.2" 1159 | resolved "http://registry.npm.taobao.org/create-error-class/download/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" 1160 | dependencies: 1161 | capture-stack-trace "^1.0.0" 1162 | 1163 | cross-env@^3.2.4: 1164 | version "3.2.4" 1165 | resolved "http://registry.npm.taobao.org/cross-env/download/cross-env-3.2.4.tgz#9e0585f277864ed421ce756f81a980ff0d698aba" 1166 | dependencies: 1167 | cross-spawn "^5.1.0" 1168 | is-windows "^1.0.0" 1169 | 1170 | cross-spawn@^4, cross-spawn@^4.0.0: 1171 | version "4.0.2" 1172 | resolved "http://registry.npm.taobao.org/cross-spawn/download/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41" 1173 | dependencies: 1174 | lru-cache "^4.0.1" 1175 | which "^1.2.9" 1176 | 1177 | cross-spawn@^5.0.1, cross-spawn@^5.1.0: 1178 | version "5.1.0" 1179 | resolved "http://registry.npm.taobao.org/cross-spawn/download/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" 1180 | dependencies: 1181 | lru-cache "^4.0.1" 1182 | shebang-command "^1.2.0" 1183 | which "^1.2.9" 1184 | 1185 | cryptiles@2.x.x: 1186 | version "2.0.5" 1187 | resolved "http://registry.npm.taobao.org/cryptiles/download/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" 1188 | dependencies: 1189 | boom "2.x.x" 1190 | 1191 | currently-unhandled@^0.4.1: 1192 | version "0.4.1" 1193 | resolved "http://registry.npm.taobao.org/currently-unhandled/download/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" 1194 | dependencies: 1195 | array-find-index "^1.0.1" 1196 | 1197 | d@1: 1198 | version "1.0.0" 1199 | resolved "http://registry.npm.taobao.org/d/download/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" 1200 | dependencies: 1201 | es5-ext "^0.10.9" 1202 | 1203 | dashdash@^1.12.0: 1204 | version "1.14.1" 1205 | resolved "http://registry.npm.taobao.org/dashdash/download/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" 1206 | dependencies: 1207 | assert-plus "^1.0.0" 1208 | 1209 | date-time@^0.1.1: 1210 | version "0.1.1" 1211 | resolved "http://registry.npm.taobao.org/date-time/download/date-time-0.1.1.tgz#ed2f6d93d9790ce2fd66d5b5ff3edd5bbcbf3b07" 1212 | 1213 | debug-log@^1.0.1: 1214 | version "1.0.1" 1215 | resolved "http://registry.npm.taobao.org/debug-log/download/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f" 1216 | 1217 | debug@*, debug@^2.1.1, debug@^2.2.0, debug@^2.6.3: 1218 | version "2.6.3" 1219 | resolved "http://registry.npm.taobao.org/debug/download/debug-2.6.3.tgz#0f7eb8c30965ec08c72accfa0130c8b79984141d" 1220 | dependencies: 1221 | ms "0.7.2" 1222 | 1223 | decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: 1224 | version "1.2.0" 1225 | resolved "http://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 1226 | 1227 | deep-equal@^1.0.0, deep-equal@~1.0.0: 1228 | version "1.0.1" 1229 | resolved "http://registry.npm.taobao.org/deep-equal/download/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" 1230 | 1231 | deep-extend@~0.4.0: 1232 | version "0.4.1" 1233 | resolved "http://registry.npm.taobao.org/deep-extend/download/deep-extend-0.4.1.tgz#efe4113d08085f4e6f9687759810f807469e2253" 1234 | 1235 | deep-is@~0.1.3: 1236 | version "0.1.3" 1237 | resolved "http://registry.npm.taobao.org/deep-is/download/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" 1238 | 1239 | default-require-extensions@^1.0.0: 1240 | version "1.0.0" 1241 | resolved "http://registry.npm.taobao.org/default-require-extensions/download/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8" 1242 | dependencies: 1243 | strip-bom "^2.0.0" 1244 | 1245 | del@^2.0.2: 1246 | version "2.2.2" 1247 | resolved "http://registry.npm.taobao.org/del/download/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" 1248 | dependencies: 1249 | globby "^5.0.0" 1250 | is-path-cwd "^1.0.0" 1251 | is-path-in-cwd "^1.0.0" 1252 | object-assign "^4.0.1" 1253 | pify "^2.0.0" 1254 | pinkie-promise "^2.0.0" 1255 | rimraf "^2.2.8" 1256 | 1257 | delayed-stream@~1.0.0: 1258 | version "1.0.0" 1259 | resolved "http://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 1260 | 1261 | delegates@^1.0.0: 1262 | version "1.0.0" 1263 | resolved "http://registry.npm.taobao.org/delegates/download/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" 1264 | 1265 | depd@1.1.0, depd@^1.1.0, depd@~1.1.0: 1266 | version "1.1.0" 1267 | resolved "http://registry.npm.taobao.org/depd/download/depd-1.1.0.tgz#e1bd82c6aab6ced965b97b88b17ed3e528ca18c3" 1268 | 1269 | destroy@^1.0.3: 1270 | version "1.0.4" 1271 | resolved "http://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" 1272 | 1273 | detect-indent@^4.0.0: 1274 | version "4.0.0" 1275 | resolved "http://registry.npm.taobao.org/detect-indent/download/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" 1276 | dependencies: 1277 | repeating "^2.0.0" 1278 | 1279 | diff@^3.0.0, diff@^3.0.1: 1280 | version "3.2.0" 1281 | resolved "http://registry.npm.taobao.org/diff/download/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9" 1282 | 1283 | doctrine@^2.0.0: 1284 | version "2.0.0" 1285 | resolved "http://registry.npm.taobao.org/doctrine/download/doctrine-2.0.0.tgz#c73d8d2909d22291e1a007a395804da8b665fe63" 1286 | dependencies: 1287 | esutils "^2.0.2" 1288 | isarray "^1.0.0" 1289 | 1290 | dot-prop@^3.0.0: 1291 | version "3.0.0" 1292 | resolved "http://registry.npm.taobao.org/dot-prop/download/dot-prop-3.0.0.tgz#1b708af094a49c9a0e7dbcad790aba539dac1177" 1293 | dependencies: 1294 | is-obj "^1.0.0" 1295 | 1296 | dot-prop@^4.1.0: 1297 | version "4.1.1" 1298 | resolved "http://registry.npm.taobao.org/dot-prop/download/dot-prop-4.1.1.tgz#a8493f0b7b5eeec82525b5c7587fa7de7ca859c1" 1299 | dependencies: 1300 | is-obj "^1.0.0" 1301 | 1302 | duplexer2@^0.1.4: 1303 | version "0.1.4" 1304 | resolved "http://registry.npm.taobao.org/duplexer2/download/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" 1305 | dependencies: 1306 | readable-stream "^2.0.2" 1307 | 1308 | ecc-jsbn@~0.1.1: 1309 | version "0.1.1" 1310 | resolved "http://registry.npm.taobao.org/ecc-jsbn/download/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" 1311 | dependencies: 1312 | jsbn "~0.1.0" 1313 | 1314 | ee-first@1.1.1: 1315 | version "1.1.1" 1316 | resolved "http://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 1317 | 1318 | empower-core@^0.6.1: 1319 | version "0.6.1" 1320 | resolved "http://registry.npm.taobao.org/empower-core/download/empower-core-0.6.1.tgz#6c187f502fcef7554d57933396aac655483772b1" 1321 | dependencies: 1322 | call-signature "0.0.2" 1323 | core-js "^2.0.0" 1324 | 1325 | equal-length@^1.0.0: 1326 | version "1.0.1" 1327 | resolved "http://registry.npm.taobao.org/equal-length/download/equal-length-1.0.1.tgz#21ca112d48ab24b4e1e7ffc0e5339d31fdfc274c" 1328 | 1329 | error-ex@^1.2.0: 1330 | version "1.3.1" 1331 | resolved "http://registry.npm.taobao.org/error-ex/download/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" 1332 | dependencies: 1333 | is-arrayish "^0.2.1" 1334 | 1335 | error-inject@~1.0.0: 1336 | version "1.0.0" 1337 | resolved "http://registry.npm.taobao.org/error-inject/download/error-inject-1.0.0.tgz#e2b3d91b54aed672f309d950d154850fa11d4f37" 1338 | 1339 | es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14: 1340 | version "0.10.15" 1341 | resolved "http://registry.npm.taobao.org/es5-ext/download/es5-ext-0.10.15.tgz#c330a5934c1ee21284a7c081a86e5fd937c91ea6" 1342 | dependencies: 1343 | es6-iterator "2" 1344 | es6-symbol "~3.1" 1345 | 1346 | es6-iterator@2, es6-iterator@^2.0.1, es6-iterator@~2.0.1: 1347 | version "2.0.1" 1348 | resolved "http://registry.npm.taobao.org/es6-iterator/download/es6-iterator-2.0.1.tgz#8e319c9f0453bf575d374940a655920e59ca5512" 1349 | dependencies: 1350 | d "1" 1351 | es5-ext "^0.10.14" 1352 | es6-symbol "^3.1" 1353 | 1354 | es6-map@^0.1.3: 1355 | version "0.1.5" 1356 | resolved "http://registry.npm.taobao.org/es6-map/download/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" 1357 | dependencies: 1358 | d "1" 1359 | es5-ext "~0.10.14" 1360 | es6-iterator "~2.0.1" 1361 | es6-set "~0.1.5" 1362 | es6-symbol "~3.1.1" 1363 | event-emitter "~0.3.5" 1364 | 1365 | es6-set@~0.1.5: 1366 | version "0.1.5" 1367 | resolved "http://registry.npm.taobao.org/es6-set/download/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" 1368 | dependencies: 1369 | d "1" 1370 | es5-ext "~0.10.14" 1371 | es6-iterator "~2.0.1" 1372 | es6-symbol "3.1.1" 1373 | event-emitter "~0.3.5" 1374 | 1375 | es6-symbol@3.1.1, es6-symbol@^3.1, es6-symbol@^3.1.1, es6-symbol@~3.1, es6-symbol@~3.1.1: 1376 | version "3.1.1" 1377 | resolved "http://registry.npm.taobao.org/es6-symbol/download/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" 1378 | dependencies: 1379 | d "1" 1380 | es5-ext "~0.10.14" 1381 | 1382 | es6-weak-map@^2.0.1: 1383 | version "2.0.2" 1384 | resolved "http://registry.npm.taobao.org/es6-weak-map/download/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" 1385 | dependencies: 1386 | d "1" 1387 | es5-ext "^0.10.14" 1388 | es6-iterator "^2.0.1" 1389 | es6-symbol "^3.1.1" 1390 | 1391 | escape-html@~1.0.1: 1392 | version "1.0.3" 1393 | resolved "http://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" 1394 | 1395 | escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.4, escape-string-regexp@^1.0.5: 1396 | version "1.0.5" 1397 | resolved "http://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 1398 | 1399 | escope@^3.6.0: 1400 | version "3.6.0" 1401 | resolved "http://registry.npm.taobao.org/escope/download/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" 1402 | dependencies: 1403 | es6-map "^0.1.3" 1404 | es6-weak-map "^2.0.1" 1405 | esrecurse "^4.1.0" 1406 | estraverse "^4.1.1" 1407 | 1408 | eslint@^3.18.0: 1409 | version "3.18.0" 1410 | resolved "http://registry.npm.taobao.org/eslint/download/eslint-3.18.0.tgz#647e985c4ae71502d20ac62c109f66d5104c8a4b" 1411 | dependencies: 1412 | babel-code-frame "^6.16.0" 1413 | chalk "^1.1.3" 1414 | concat-stream "^1.5.2" 1415 | debug "^2.1.1" 1416 | doctrine "^2.0.0" 1417 | escope "^3.6.0" 1418 | espree "^3.4.0" 1419 | esquery "^1.0.0" 1420 | estraverse "^4.2.0" 1421 | esutils "^2.0.2" 1422 | file-entry-cache "^2.0.0" 1423 | glob "^7.0.3" 1424 | globals "^9.14.0" 1425 | ignore "^3.2.0" 1426 | imurmurhash "^0.1.4" 1427 | inquirer "^0.12.0" 1428 | is-my-json-valid "^2.10.0" 1429 | is-resolvable "^1.0.0" 1430 | js-yaml "^3.5.1" 1431 | json-stable-stringify "^1.0.0" 1432 | levn "^0.3.0" 1433 | lodash "^4.0.0" 1434 | mkdirp "^0.5.0" 1435 | natural-compare "^1.4.0" 1436 | optionator "^0.8.2" 1437 | path-is-inside "^1.0.1" 1438 | pluralize "^1.2.1" 1439 | progress "^1.1.8" 1440 | require-uncached "^1.0.2" 1441 | shelljs "^0.7.5" 1442 | strip-bom "^3.0.0" 1443 | strip-json-comments "~2.0.1" 1444 | table "^3.7.8" 1445 | text-table "~0.2.0" 1446 | user-home "^2.0.0" 1447 | 1448 | espower-location-detector@^1.0.0: 1449 | version "1.0.0" 1450 | resolved "http://registry.npm.taobao.org/espower-location-detector/download/espower-location-detector-1.0.0.tgz#a17b7ecc59d30e179e2bef73fb4137704cb331b5" 1451 | dependencies: 1452 | is-url "^1.2.1" 1453 | path-is-absolute "^1.0.0" 1454 | source-map "^0.5.0" 1455 | xtend "^4.0.0" 1456 | 1457 | espree@^3.4.0: 1458 | version "3.4.0" 1459 | resolved "http://registry.npm.taobao.org/espree/download/espree-3.4.0.tgz#41656fa5628e042878025ef467e78f125cb86e1d" 1460 | dependencies: 1461 | acorn "4.0.4" 1462 | acorn-jsx "^3.0.0" 1463 | 1464 | esprima@^3.1.1: 1465 | version "3.1.3" 1466 | resolved "http://registry.npm.taobao.org/esprima/download/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" 1467 | 1468 | espurify@^1.6.0: 1469 | version "1.7.0" 1470 | resolved "http://registry.npm.taobao.org/espurify/download/espurify-1.7.0.tgz#1c5cf6cbccc32e6f639380bd4f991fab9ba9d226" 1471 | dependencies: 1472 | core-js "^2.0.0" 1473 | 1474 | esquery@^1.0.0: 1475 | version "1.0.0" 1476 | resolved "http://registry.npm.taobao.org/esquery/download/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa" 1477 | dependencies: 1478 | estraverse "^4.0.0" 1479 | 1480 | esrecurse@^4.1.0: 1481 | version "4.1.0" 1482 | resolved "http://registry.npm.taobao.org/esrecurse/download/esrecurse-4.1.0.tgz#4713b6536adf7f2ac4f327d559e7756bff648220" 1483 | dependencies: 1484 | estraverse "~4.1.0" 1485 | object-assign "^4.0.1" 1486 | 1487 | estraverse@^4.0.0, estraverse@^4.1.1, estraverse@^4.2.0: 1488 | version "4.2.0" 1489 | resolved "http://registry.npm.taobao.org/estraverse/download/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" 1490 | 1491 | estraverse@~4.1.0: 1492 | version "4.1.1" 1493 | resolved "http://registry.npm.taobao.org/estraverse/download/estraverse-4.1.1.tgz#f6caca728933a850ef90661d0e17982ba47111a2" 1494 | 1495 | esutils@^2.0.2: 1496 | version "2.0.2" 1497 | resolved "http://registry.npm.taobao.org/esutils/download/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" 1498 | 1499 | event-emitter@~0.3.5: 1500 | version "0.3.5" 1501 | resolved "http://registry.npm.taobao.org/event-emitter/download/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" 1502 | dependencies: 1503 | d "1" 1504 | es5-ext "~0.10.14" 1505 | 1506 | execa@^0.5.0: 1507 | version "0.5.1" 1508 | resolved "http://registry.npm.taobao.org/execa/download/execa-0.5.1.tgz#de3fb85cb8d6e91c85bcbceb164581785cb57b36" 1509 | dependencies: 1510 | cross-spawn "^4.0.0" 1511 | get-stream "^2.2.0" 1512 | is-stream "^1.1.0" 1513 | npm-run-path "^2.0.0" 1514 | p-finally "^1.0.0" 1515 | signal-exit "^3.0.0" 1516 | strip-eof "^1.0.0" 1517 | 1518 | exit-hook@^1.0.0: 1519 | version "1.1.1" 1520 | resolved "http://registry.npm.taobao.org/exit-hook/download/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" 1521 | 1522 | expand-brackets@^0.1.4: 1523 | version "0.1.5" 1524 | resolved "http://registry.npm.taobao.org/expand-brackets/download/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" 1525 | dependencies: 1526 | is-posix-bracket "^0.1.0" 1527 | 1528 | expand-range@^1.8.1: 1529 | version "1.8.2" 1530 | resolved "http://registry.npm.taobao.org/expand-range/download/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" 1531 | dependencies: 1532 | fill-range "^2.1.0" 1533 | 1534 | extend@^3.0.0, extend@~3.0.0: 1535 | version "3.0.0" 1536 | resolved "http://registry.npm.taobao.org/extend/download/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4" 1537 | 1538 | extglob@^0.3.1: 1539 | version "0.3.2" 1540 | resolved "http://registry.npm.taobao.org/extglob/download/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" 1541 | dependencies: 1542 | is-extglob "^1.0.0" 1543 | 1544 | extsprintf@1.0.2: 1545 | version "1.0.2" 1546 | resolved "http://registry.npm.taobao.org/extsprintf/download/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" 1547 | 1548 | fast-levenshtein@~2.0.4: 1549 | version "2.0.6" 1550 | resolved "http://registry.npm.taobao.org/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 1551 | 1552 | figures@^1.3.5: 1553 | version "1.7.0" 1554 | resolved "http://registry.npm.taobao.org/figures/download/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" 1555 | dependencies: 1556 | escape-string-regexp "^1.0.5" 1557 | object-assign "^4.1.0" 1558 | 1559 | figures@^2.0.0: 1560 | version "2.0.0" 1561 | resolved "http://registry.npm.taobao.org/figures/download/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" 1562 | dependencies: 1563 | escape-string-regexp "^1.0.5" 1564 | 1565 | file-entry-cache@^2.0.0: 1566 | version "2.0.0" 1567 | resolved "http://registry.npm.taobao.org/file-entry-cache/download/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" 1568 | dependencies: 1569 | flat-cache "^1.2.1" 1570 | object-assign "^4.0.1" 1571 | 1572 | filename-regex@^2.0.0: 1573 | version "2.0.0" 1574 | resolved "http://registry.npm.taobao.org/filename-regex/download/filename-regex-2.0.0.tgz#996e3e80479b98b9897f15a8a58b3d084e926775" 1575 | 1576 | fill-range@^2.1.0: 1577 | version "2.2.3" 1578 | resolved "http://registry.npm.taobao.org/fill-range/download/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" 1579 | dependencies: 1580 | is-number "^2.1.0" 1581 | isobject "^2.0.0" 1582 | randomatic "^1.1.3" 1583 | repeat-element "^1.1.2" 1584 | repeat-string "^1.5.2" 1585 | 1586 | filled-array@^1.0.0: 1587 | version "1.1.0" 1588 | resolved "http://registry.npm.taobao.org/filled-array/download/filled-array-1.1.0.tgz#c3c4f6c663b923459a9aa29912d2d031f1507f84" 1589 | 1590 | find-cache-dir@^0.1.1: 1591 | version "0.1.1" 1592 | resolved "http://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" 1593 | dependencies: 1594 | commondir "^1.0.1" 1595 | mkdirp "^0.5.1" 1596 | pkg-dir "^1.0.0" 1597 | 1598 | find-up@^1.0.0, find-up@^1.1.2: 1599 | version "1.1.2" 1600 | resolved "http://registry.npm.taobao.org/find-up/download/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" 1601 | dependencies: 1602 | path-exists "^2.0.0" 1603 | pinkie-promise "^2.0.0" 1604 | 1605 | find-up@^2.0.0: 1606 | version "2.1.0" 1607 | resolved "http://registry.npm.taobao.org/find-up/download/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" 1608 | dependencies: 1609 | locate-path "^2.0.0" 1610 | 1611 | flat-cache@^1.2.1: 1612 | version "1.2.2" 1613 | resolved "http://registry.npm.taobao.org/flat-cache/download/flat-cache-1.2.2.tgz#fa86714e72c21db88601761ecf2f555d1abc6b96" 1614 | dependencies: 1615 | circular-json "^0.3.1" 1616 | del "^2.0.2" 1617 | graceful-fs "^4.1.2" 1618 | write "^0.2.1" 1619 | 1620 | fn-name@^2.0.0: 1621 | version "2.0.1" 1622 | resolved "http://registry.npm.taobao.org/fn-name/download/fn-name-2.0.1.tgz#5214d7537a4d06a4a301c0cc262feb84188002e7" 1623 | 1624 | for-in@^1.0.1: 1625 | version "1.0.2" 1626 | resolved "http://registry.npm.taobao.org/for-in/download/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" 1627 | 1628 | for-own@^0.1.4: 1629 | version "0.1.5" 1630 | resolved "http://registry.npm.taobao.org/for-own/download/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" 1631 | dependencies: 1632 | for-in "^1.0.1" 1633 | 1634 | foreground-child@^1.3.3, foreground-child@^1.5.3: 1635 | version "1.5.6" 1636 | resolved "http://registry.npm.taobao.org/foreground-child/download/foreground-child-1.5.6.tgz#4fd71ad2dfde96789b980a5c0a295937cb2f5ce9" 1637 | dependencies: 1638 | cross-spawn "^4" 1639 | signal-exit "^3.0.0" 1640 | 1641 | forever-agent@~0.6.1: 1642 | version "0.6.1" 1643 | resolved "http://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" 1644 | 1645 | form-data@^2.1.1, form-data@~2.1.1: 1646 | version "2.1.2" 1647 | resolved "http://registry.npm.taobao.org/form-data/download/form-data-2.1.2.tgz#89c3534008b97eada4cbb157d58f6f5df025eae4" 1648 | dependencies: 1649 | asynckit "^0.4.0" 1650 | combined-stream "^1.0.5" 1651 | mime-types "^2.1.12" 1652 | 1653 | formidable@^1.1.1: 1654 | version "1.1.1" 1655 | resolved "http://registry.npm.taobao.org/formidable/download/formidable-1.1.1.tgz#96b8886f7c3c3508b932d6bd70c4d3a88f35f1a9" 1656 | 1657 | fresh@^0.5.0: 1658 | version "0.5.0" 1659 | resolved "http://registry.npm.taobao.org/fresh/download/fresh-0.5.0.tgz#f474ca5e6a9246d6fd8e0953cfa9b9c805afa78e" 1660 | 1661 | fs-readdir-recursive@^1.0.0: 1662 | version "1.0.0" 1663 | resolved "http://registry.npm.taobao.org/fs-readdir-recursive/download/fs-readdir-recursive-1.0.0.tgz#8cd1745c8b4f8a29c8caec392476921ba195f560" 1664 | 1665 | fs.realpath@^1.0.0: 1666 | version "1.0.0" 1667 | resolved "http://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 1668 | 1669 | fsevents@^1.0.0: 1670 | version "1.1.1" 1671 | resolved "http://registry.npm.taobao.org/fsevents/download/fsevents-1.1.1.tgz#f19fd28f43eeaf761680e519a203c4d0b3d31aff" 1672 | dependencies: 1673 | nan "^2.3.0" 1674 | node-pre-gyp "^0.6.29" 1675 | 1676 | fstream-ignore@^1.0.5: 1677 | version "1.0.5" 1678 | resolved "http://registry.npm.taobao.org/fstream-ignore/download/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" 1679 | dependencies: 1680 | fstream "^1.0.0" 1681 | inherits "2" 1682 | minimatch "^3.0.0" 1683 | 1684 | fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: 1685 | version "1.0.11" 1686 | resolved "http://registry.npm.taobao.org/fstream/download/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" 1687 | dependencies: 1688 | graceful-fs "^4.1.2" 1689 | inherits "~2.0.0" 1690 | mkdirp ">=0.5 0" 1691 | rimraf "2" 1692 | 1693 | gauge@~2.7.1: 1694 | version "2.7.3" 1695 | resolved "http://registry.npm.taobao.org/gauge/download/gauge-2.7.3.tgz#1c23855f962f17b3ad3d0dc7443f304542edfe09" 1696 | dependencies: 1697 | aproba "^1.0.3" 1698 | console-control-strings "^1.0.0" 1699 | has-unicode "^2.0.0" 1700 | object-assign "^4.1.0" 1701 | signal-exit "^3.0.0" 1702 | string-width "^1.0.1" 1703 | strip-ansi "^3.0.1" 1704 | wide-align "^1.1.0" 1705 | 1706 | generate-function@^2.0.0: 1707 | version "2.0.0" 1708 | resolved "http://registry.npm.taobao.org/generate-function/download/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" 1709 | 1710 | generate-object-property@^1.1.0: 1711 | version "1.2.0" 1712 | resolved "http://registry.npm.taobao.org/generate-object-property/download/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" 1713 | dependencies: 1714 | is-property "^1.0.0" 1715 | 1716 | get-caller-file@^1.0.1: 1717 | version "1.0.2" 1718 | resolved "http://registry.npm.taobao.org/get-caller-file/download/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" 1719 | 1720 | get-port@^2.1.0: 1721 | version "2.1.0" 1722 | resolved "http://registry.npm.taobao.org/get-port/download/get-port-2.1.0.tgz#8783f9dcebd1eea495a334e1a6a251e78887ab1a" 1723 | dependencies: 1724 | pinkie-promise "^2.0.0" 1725 | 1726 | get-stdin@^4.0.1: 1727 | version "4.0.1" 1728 | resolved "http://registry.npm.taobao.org/get-stdin/download/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" 1729 | 1730 | get-stream@^2.2.0: 1731 | version "2.3.1" 1732 | resolved "http://registry.npm.taobao.org/get-stream/download/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de" 1733 | dependencies: 1734 | object-assign "^4.0.1" 1735 | pinkie-promise "^2.0.0" 1736 | 1737 | getpass@^0.1.1: 1738 | version "0.1.6" 1739 | resolved "http://registry.npm.taobao.org/getpass/download/getpass-0.1.6.tgz#283ffd9fc1256840875311c1b60e8c40187110e6" 1740 | dependencies: 1741 | assert-plus "^1.0.0" 1742 | 1743 | glob-base@^0.3.0: 1744 | version "0.3.0" 1745 | resolved "http://registry.npm.taobao.org/glob-base/download/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" 1746 | dependencies: 1747 | glob-parent "^2.0.0" 1748 | is-glob "^2.0.0" 1749 | 1750 | glob-parent@^2.0.0: 1751 | version "2.0.0" 1752 | resolved "http://registry.npm.taobao.org/glob-parent/download/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" 1753 | dependencies: 1754 | is-glob "^2.0.0" 1755 | 1756 | glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.0.6: 1757 | version "7.1.1" 1758 | resolved "http://registry.npm.taobao.org/glob/download/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" 1759 | dependencies: 1760 | fs.realpath "^1.0.0" 1761 | inflight "^1.0.4" 1762 | inherits "2" 1763 | minimatch "^3.0.2" 1764 | once "^1.3.0" 1765 | path-is-absolute "^1.0.0" 1766 | 1767 | globals@^9.0.0, globals@^9.14.0: 1768 | version "9.16.0" 1769 | resolved "http://registry.npm.taobao.org/globals/download/globals-9.16.0.tgz#63e903658171ec2d9f51b1d31de5e2b8dc01fb80" 1770 | 1771 | globby@^5.0.0: 1772 | version "5.0.0" 1773 | resolved "http://registry.npm.taobao.org/globby/download/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" 1774 | dependencies: 1775 | array-union "^1.0.1" 1776 | arrify "^1.0.0" 1777 | glob "^7.0.3" 1778 | object-assign "^4.0.1" 1779 | pify "^2.0.0" 1780 | pinkie-promise "^2.0.0" 1781 | 1782 | globby@^6.0.0: 1783 | version "6.1.0" 1784 | resolved "http://registry.npm.taobao.org/globby/download/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" 1785 | dependencies: 1786 | array-union "^1.0.1" 1787 | glob "^7.0.3" 1788 | object-assign "^4.0.1" 1789 | pify "^2.0.0" 1790 | pinkie-promise "^2.0.0" 1791 | 1792 | got@^5.0.0: 1793 | version "5.7.1" 1794 | resolved "http://registry.npm.taobao.org/got/download/got-5.7.1.tgz#5f81635a61e4a6589f180569ea4e381680a51f35" 1795 | dependencies: 1796 | create-error-class "^3.0.1" 1797 | duplexer2 "^0.1.4" 1798 | is-redirect "^1.0.0" 1799 | is-retry-allowed "^1.0.0" 1800 | is-stream "^1.0.0" 1801 | lowercase-keys "^1.0.0" 1802 | node-status-codes "^1.0.0" 1803 | object-assign "^4.0.1" 1804 | parse-json "^2.1.0" 1805 | pinkie-promise "^2.0.0" 1806 | read-all-stream "^3.0.0" 1807 | readable-stream "^2.0.5" 1808 | timed-out "^3.0.0" 1809 | unzip-response "^1.0.2" 1810 | url-parse-lax "^1.0.0" 1811 | 1812 | graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6: 1813 | version "4.1.11" 1814 | resolved "http://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" 1815 | 1816 | "graceful-readlink@>= 1.0.0": 1817 | version "1.0.1" 1818 | resolved "http://registry.npm.taobao.org/graceful-readlink/download/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" 1819 | 1820 | handlebars@^4.0.3: 1821 | version "4.0.6" 1822 | resolved "http://registry.npm.taobao.org/handlebars/download/handlebars-4.0.6.tgz#2ce4484850537f9c97a8026d5399b935c4ed4ed7" 1823 | dependencies: 1824 | async "^1.4.0" 1825 | optimist "^0.6.1" 1826 | source-map "^0.4.4" 1827 | optionalDependencies: 1828 | uglify-js "^2.6" 1829 | 1830 | har-schema@^1.0.5: 1831 | version "1.0.5" 1832 | resolved "http://registry.npm.taobao.org/har-schema/download/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" 1833 | 1834 | har-validator@~4.2.1: 1835 | version "4.2.1" 1836 | resolved "http://registry.npm.taobao.org/har-validator/download/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" 1837 | dependencies: 1838 | ajv "^4.9.1" 1839 | har-schema "^1.0.5" 1840 | 1841 | has-ansi@^2.0.0: 1842 | version "2.0.0" 1843 | resolved "http://registry.npm.taobao.org/has-ansi/download/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" 1844 | dependencies: 1845 | ansi-regex "^2.0.0" 1846 | 1847 | has-color@~0.1.0: 1848 | version "0.1.7" 1849 | resolved "http://registry.npm.taobao.org/has-color/download/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f" 1850 | 1851 | has-flag@^1.0.0: 1852 | version "1.0.0" 1853 | resolved "http://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" 1854 | 1855 | has-flag@^2.0.0: 1856 | version "2.0.0" 1857 | resolved "http://registry.npm.taobao.org/has-flag/download/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" 1858 | 1859 | has-unicode@^2.0.0: 1860 | version "2.0.1" 1861 | resolved "http://registry.npm.taobao.org/has-unicode/download/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" 1862 | 1863 | has-yarn@^1.0.0: 1864 | version "1.0.0" 1865 | resolved "http://registry.npm.taobao.org/has-yarn/download/has-yarn-1.0.0.tgz#89e25db604b725c8f5976fff0addc921b828a5a7" 1866 | 1867 | hawk@~3.1.3: 1868 | version "3.1.3" 1869 | resolved "http://registry.npm.taobao.org/hawk/download/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" 1870 | dependencies: 1871 | boom "2.x.x" 1872 | cryptiles "2.x.x" 1873 | hoek "2.x.x" 1874 | sntp "1.x.x" 1875 | 1876 | hoek@2.x.x: 1877 | version "2.16.3" 1878 | resolved "http://registry.npm.taobao.org/hoek/download/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" 1879 | 1880 | home-or-tmp@^2.0.0: 1881 | version "2.0.0" 1882 | resolved "http://registry.npm.taobao.org/home-or-tmp/download/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" 1883 | dependencies: 1884 | os-homedir "^1.0.0" 1885 | os-tmpdir "^1.0.1" 1886 | 1887 | hosted-git-info@^2.1.4: 1888 | version "2.3.1" 1889 | resolved "http://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.3.1.tgz#ac439421605f0beb0ea1349de7d8bb28e50be1dd" 1890 | 1891 | http-assert@^1.1.0: 1892 | version "1.2.0" 1893 | resolved "http://registry.npm.taobao.org/http-assert/download/http-assert-1.2.0.tgz#d6392e6f6519def4e340266b35096db6d3feba00" 1894 | dependencies: 1895 | deep-equal "~1.0.0" 1896 | http-errors "~1.4.0" 1897 | 1898 | http-errors@^1.2.8, http-errors@^1.3.1: 1899 | version "1.6.1" 1900 | resolved "http://registry.npm.taobao.org/http-errors/download/http-errors-1.6.1.tgz#5f8b8ed98aca545656bf572997387f904a722257" 1901 | dependencies: 1902 | depd "1.1.0" 1903 | inherits "2.0.3" 1904 | setprototypeof "1.0.3" 1905 | statuses ">= 1.3.1 < 2" 1906 | 1907 | http-errors@~1.4.0: 1908 | version "1.4.0" 1909 | resolved "http://registry.npm.taobao.org/http-errors/download/http-errors-1.4.0.tgz#6c0242dea6b3df7afda153c71089b31c6e82aabf" 1910 | dependencies: 1911 | inherits "2.0.1" 1912 | statuses ">= 1.2.1 < 2" 1913 | 1914 | http-signature@~1.1.0: 1915 | version "1.1.1" 1916 | resolved "http://registry.npm.taobao.org/http-signature/download/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" 1917 | dependencies: 1918 | assert-plus "^0.2.0" 1919 | jsprim "^1.2.2" 1920 | sshpk "^1.7.0" 1921 | 1922 | ignore-by-default@^1.0.0: 1923 | version "1.0.1" 1924 | resolved "http://registry.npm.taobao.org/ignore-by-default/download/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" 1925 | 1926 | ignore@^3.2.0: 1927 | version "3.2.6" 1928 | resolved "http://registry.npm.taobao.org/ignore/download/ignore-3.2.6.tgz#26e8da0644be0bb4cb39516f6c79f0e0f4ffe48c" 1929 | 1930 | imurmurhash@^0.1.4: 1931 | version "0.1.4" 1932 | resolved "http://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 1933 | 1934 | indent-string@^2.1.0: 1935 | version "2.1.0" 1936 | resolved "http://registry.npm.taobao.org/indent-string/download/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" 1937 | dependencies: 1938 | repeating "^2.0.0" 1939 | 1940 | indent-string@^3.0.0: 1941 | version "3.1.0" 1942 | resolved "http://registry.npm.taobao.org/indent-string/download/indent-string-3.1.0.tgz#08ff4334603388399b329e6b9538dc7a3cf5de7d" 1943 | 1944 | inflight@^1.0.4: 1945 | version "1.0.6" 1946 | resolved "http://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 1947 | dependencies: 1948 | once "^1.3.0" 1949 | wrappy "1" 1950 | 1951 | inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1: 1952 | version "2.0.3" 1953 | resolved "http://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 1954 | 1955 | inherits@2.0.1: 1956 | version "2.0.1" 1957 | resolved "http://registry.npm.taobao.org/inherits/download/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" 1958 | 1959 | ini@~1.3.0: 1960 | version "1.3.4" 1961 | resolved "http://registry.npm.taobao.org/ini/download/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" 1962 | 1963 | inquirer@^0.12.0: 1964 | version "0.12.0" 1965 | resolved "http://registry.npm.taobao.org/inquirer/download/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e" 1966 | dependencies: 1967 | ansi-escapes "^1.1.0" 1968 | ansi-regex "^2.0.0" 1969 | chalk "^1.0.0" 1970 | cli-cursor "^1.0.1" 1971 | cli-width "^2.0.0" 1972 | figures "^1.3.5" 1973 | lodash "^4.3.0" 1974 | readline2 "^1.0.1" 1975 | run-async "^0.1.0" 1976 | rx-lite "^3.1.2" 1977 | string-width "^1.0.1" 1978 | strip-ansi "^3.0.0" 1979 | through "^2.3.6" 1980 | 1981 | interpret@^1.0.0: 1982 | version "1.0.1" 1983 | resolved "http://registry.npm.taobao.org/interpret/download/interpret-1.0.1.tgz#d579fb7f693b858004947af39fa0db49f795602c" 1984 | 1985 | invariant@^2.2.0: 1986 | version "2.2.2" 1987 | resolved "http://registry.npm.taobao.org/invariant/download/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" 1988 | dependencies: 1989 | loose-envify "^1.0.0" 1990 | 1991 | invert-kv@^1.0.0: 1992 | version "1.0.0" 1993 | resolved "http://registry.npm.taobao.org/invert-kv/download/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" 1994 | 1995 | irregular-plurals@^1.0.0: 1996 | version "1.2.0" 1997 | resolved "http://registry.npm.taobao.org/irregular-plurals/download/irregular-plurals-1.2.0.tgz#38f299834ba8c00c30be9c554e137269752ff3ac" 1998 | 1999 | is-arrayish@^0.2.1: 2000 | version "0.2.1" 2001 | resolved "http://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 2002 | 2003 | is-binary-path@^1.0.0: 2004 | version "1.0.1" 2005 | resolved "http://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" 2006 | dependencies: 2007 | binary-extensions "^1.0.0" 2008 | 2009 | is-buffer@^1.0.2: 2010 | version "1.1.5" 2011 | resolved "http://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc" 2012 | 2013 | is-builtin-module@^1.0.0: 2014 | version "1.0.0" 2015 | resolved "http://registry.npm.taobao.org/is-builtin-module/download/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" 2016 | dependencies: 2017 | builtin-modules "^1.0.0" 2018 | 2019 | is-ci@^1.0.7: 2020 | version "1.0.10" 2021 | resolved "http://registry.npm.taobao.org/is-ci/download/is-ci-1.0.10.tgz#f739336b2632365061a9d48270cd56ae3369318e" 2022 | dependencies: 2023 | ci-info "^1.0.0" 2024 | 2025 | is-dotfile@^1.0.0: 2026 | version "1.0.2" 2027 | resolved "http://registry.npm.taobao.org/is-dotfile/download/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d" 2028 | 2029 | is-equal-shallow@^0.1.3: 2030 | version "0.1.3" 2031 | resolved "http://registry.npm.taobao.org/is-equal-shallow/download/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" 2032 | dependencies: 2033 | is-primitive "^2.0.0" 2034 | 2035 | is-error@^2.2.0: 2036 | version "2.2.1" 2037 | resolved "http://registry.npm.taobao.org/is-error/download/is-error-2.2.1.tgz#684a96d84076577c98f4cdb40c6d26a5123bf19c" 2038 | 2039 | is-extendable@^0.1.1: 2040 | version "0.1.1" 2041 | resolved "http://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" 2042 | 2043 | is-extglob@^1.0.0: 2044 | version "1.0.0" 2045 | resolved "http://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" 2046 | 2047 | is-finite@^1.0.0, is-finite@^1.0.1: 2048 | version "1.0.2" 2049 | resolved "http://registry.npm.taobao.org/is-finite/download/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" 2050 | dependencies: 2051 | number-is-nan "^1.0.0" 2052 | 2053 | is-fullwidth-code-point@^1.0.0: 2054 | version "1.0.0" 2055 | resolved "http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 2056 | dependencies: 2057 | number-is-nan "^1.0.0" 2058 | 2059 | is-fullwidth-code-point@^2.0.0: 2060 | version "2.0.0" 2061 | resolved "http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 2062 | 2063 | is-generator-fn@^1.0.0: 2064 | version "1.0.0" 2065 | resolved "http://registry.npm.taobao.org/is-generator-fn/download/is-generator-fn-1.0.0.tgz#969d49e1bb3329f6bb7f09089be26578b2ddd46a" 2066 | 2067 | is-generator-function@^1.0.3: 2068 | version "1.0.6" 2069 | resolved "http://registry.npm.taobao.org/is-generator-function/download/is-generator-function-1.0.6.tgz#9e71653cd15fff341c79c4151460a131d31e9fc4" 2070 | 2071 | is-glob@^2.0.0, is-glob@^2.0.1: 2072 | version "2.0.1" 2073 | resolved "http://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" 2074 | dependencies: 2075 | is-extglob "^1.0.0" 2076 | 2077 | is-my-json-valid@^2.10.0: 2078 | version "2.16.0" 2079 | resolved "http://registry.npm.taobao.org/is-my-json-valid/download/is-my-json-valid-2.16.0.tgz#f079dd9bfdae65ee2038aae8acbc86ab109e3693" 2080 | dependencies: 2081 | generate-function "^2.0.0" 2082 | generate-object-property "^1.1.0" 2083 | jsonpointer "^4.0.0" 2084 | xtend "^4.0.0" 2085 | 2086 | is-npm@^1.0.0: 2087 | version "1.0.0" 2088 | resolved "http://registry.npm.taobao.org/is-npm/download/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" 2089 | 2090 | is-number@^2.0.2, is-number@^2.1.0: 2091 | version "2.1.0" 2092 | resolved "http://registry.npm.taobao.org/is-number/download/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" 2093 | dependencies: 2094 | kind-of "^3.0.2" 2095 | 2096 | is-obj@^1.0.0: 2097 | version "1.0.1" 2098 | resolved "http://registry.npm.taobao.org/is-obj/download/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" 2099 | 2100 | is-observable@^0.2.0: 2101 | version "0.2.0" 2102 | resolved "http://registry.npm.taobao.org/is-observable/download/is-observable-0.2.0.tgz#b361311d83c6e5d726cabf5e250b0237106f5ae2" 2103 | dependencies: 2104 | symbol-observable "^0.2.2" 2105 | 2106 | is-path-cwd@^1.0.0: 2107 | version "1.0.0" 2108 | resolved "http://registry.npm.taobao.org/is-path-cwd/download/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" 2109 | 2110 | is-path-in-cwd@^1.0.0: 2111 | version "1.0.0" 2112 | resolved "http://registry.npm.taobao.org/is-path-in-cwd/download/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" 2113 | dependencies: 2114 | is-path-inside "^1.0.0" 2115 | 2116 | is-path-inside@^1.0.0: 2117 | version "1.0.0" 2118 | resolved "http://registry.npm.taobao.org/is-path-inside/download/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f" 2119 | dependencies: 2120 | path-is-inside "^1.0.1" 2121 | 2122 | is-plain-obj@^1.0.0: 2123 | version "1.1.0" 2124 | resolved "http://registry.npm.taobao.org/is-plain-obj/download/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" 2125 | 2126 | is-posix-bracket@^0.1.0: 2127 | version "0.1.1" 2128 | resolved "http://registry.npm.taobao.org/is-posix-bracket/download/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" 2129 | 2130 | is-primitive@^2.0.0: 2131 | version "2.0.0" 2132 | resolved "http://registry.npm.taobao.org/is-primitive/download/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" 2133 | 2134 | is-promise@^2.1.0: 2135 | version "2.1.0" 2136 | resolved "http://registry.npm.taobao.org/is-promise/download/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" 2137 | 2138 | is-property@^1.0.0: 2139 | version "1.0.2" 2140 | resolved "http://registry.npm.taobao.org/is-property/download/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" 2141 | 2142 | is-redirect@^1.0.0: 2143 | version "1.0.0" 2144 | resolved "http://registry.npm.taobao.org/is-redirect/download/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" 2145 | 2146 | is-resolvable@^1.0.0: 2147 | version "1.0.0" 2148 | resolved "http://registry.npm.taobao.org/is-resolvable/download/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62" 2149 | dependencies: 2150 | tryit "^1.0.1" 2151 | 2152 | is-retry-allowed@^1.0.0: 2153 | version "1.1.0" 2154 | resolved "http://registry.npm.taobao.org/is-retry-allowed/download/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" 2155 | 2156 | is-stream@^1.0.0, is-stream@^1.1.0: 2157 | version "1.1.0" 2158 | resolved "http://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 2159 | 2160 | is-typedarray@~1.0.0: 2161 | version "1.0.0" 2162 | resolved "http://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" 2163 | 2164 | is-url@^1.2.1: 2165 | version "1.2.2" 2166 | resolved "http://registry.npm.taobao.org/is-url/download/is-url-1.2.2.tgz#498905a593bf47cc2d9e7f738372bbf7696c7f26" 2167 | 2168 | is-utf8@^0.2.0, is-utf8@^0.2.1: 2169 | version "0.2.1" 2170 | resolved "http://registry.npm.taobao.org/is-utf8/download/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" 2171 | 2172 | is-windows@^1.0.0: 2173 | version "1.0.0" 2174 | resolved "http://registry.npm.taobao.org/is-windows/download/is-windows-1.0.0.tgz#c61d61020c3ebe99261b781bd3d1622395f547f8" 2175 | 2176 | isarray@0.0.1: 2177 | version "0.0.1" 2178 | resolved "http://registry.npm.taobao.org/isarray/download/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" 2179 | 2180 | isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: 2181 | version "1.0.0" 2182 | resolved "http://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 2183 | 2184 | isexe@^1.1.1: 2185 | version "1.1.2" 2186 | resolved "http://registry.npm.taobao.org/isexe/download/isexe-1.1.2.tgz#36f3e22e60750920f5e7241a476a8c6a42275ad0" 2187 | 2188 | isobject@^2.0.0: 2189 | version "2.1.0" 2190 | resolved "http://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" 2191 | dependencies: 2192 | isarray "1.0.0" 2193 | 2194 | isstream@~0.1.2: 2195 | version "0.1.2" 2196 | resolved "http://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" 2197 | 2198 | istanbul-lib-coverage@^1.0.2: 2199 | version "1.0.2" 2200 | resolved "http://registry.npm.taobao.org/istanbul-lib-coverage/download/istanbul-lib-coverage-1.0.2.tgz#87a0c015b6910651cb3b184814dfb339337e25e1" 2201 | 2202 | istanbul-lib-hook@^1.0.5: 2203 | version "1.0.5" 2204 | resolved "http://registry.npm.taobao.org/istanbul-lib-hook/download/istanbul-lib-hook-1.0.5.tgz#6ca3d16d60c5f4082da39f7c5cd38ea8a772b88e" 2205 | dependencies: 2206 | append-transform "^0.4.0" 2207 | 2208 | istanbul-lib-instrument@^1.7.0: 2209 | version "1.7.0" 2210 | resolved "http://registry.npm.taobao.org/istanbul-lib-instrument/download/istanbul-lib-instrument-1.7.0.tgz#b8e0dc25709bb44e17336ab47b7bb5c97c23f659" 2211 | dependencies: 2212 | babel-generator "^6.18.0" 2213 | babel-template "^6.16.0" 2214 | babel-traverse "^6.18.0" 2215 | babel-types "^6.18.0" 2216 | babylon "^6.13.0" 2217 | istanbul-lib-coverage "^1.0.2" 2218 | semver "^5.3.0" 2219 | 2220 | istanbul-lib-report@^1.0.0: 2221 | version "1.0.0" 2222 | resolved "http://registry.npm.taobao.org/istanbul-lib-report/download/istanbul-lib-report-1.0.0.tgz#d83dac7f26566b521585569367fe84ccfc7aaecb" 2223 | dependencies: 2224 | istanbul-lib-coverage "^1.0.2" 2225 | mkdirp "^0.5.1" 2226 | path-parse "^1.0.5" 2227 | supports-color "^3.1.2" 2228 | 2229 | istanbul-lib-source-maps@^1.1.1: 2230 | version "1.1.1" 2231 | resolved "http://registry.npm.taobao.org/istanbul-lib-source-maps/download/istanbul-lib-source-maps-1.1.1.tgz#f8c8c2e8f2160d1d91526d97e5bd63b2079af71c" 2232 | dependencies: 2233 | istanbul-lib-coverage "^1.0.2" 2234 | mkdirp "^0.5.1" 2235 | rimraf "^2.4.4" 2236 | source-map "^0.5.3" 2237 | 2238 | istanbul-reports@^1.0.2: 2239 | version "1.0.2" 2240 | resolved "http://registry.npm.taobao.org/istanbul-reports/download/istanbul-reports-1.0.2.tgz#4e8366abe6fa746cc1cd6633f108de12cc6ac6fa" 2241 | dependencies: 2242 | handlebars "^4.0.3" 2243 | 2244 | jest-diff@^18.1.0: 2245 | version "18.1.0" 2246 | resolved "http://registry.npm.taobao.org/jest-diff/download/jest-diff-18.1.0.tgz#4ff79e74dd988c139195b365dc65d87f606f4803" 2247 | dependencies: 2248 | chalk "^1.1.3" 2249 | diff "^3.0.0" 2250 | jest-matcher-utils "^18.1.0" 2251 | pretty-format "^18.1.0" 2252 | 2253 | jest-file-exists@^17.0.0: 2254 | version "17.0.0" 2255 | resolved "http://registry.npm.taobao.org/jest-file-exists/download/jest-file-exists-17.0.0.tgz#7f63eb73a1c43a13f461be261768b45af2cdd169" 2256 | 2257 | jest-matcher-utils@^18.1.0: 2258 | version "18.1.0" 2259 | resolved "http://registry.npm.taobao.org/jest-matcher-utils/download/jest-matcher-utils-18.1.0.tgz#1ac4651955ee2a60cef1e7fcc98cdfd773c0f932" 2260 | dependencies: 2261 | chalk "^1.1.3" 2262 | pretty-format "^18.1.0" 2263 | 2264 | jest-mock@^18.0.0: 2265 | version "18.0.0" 2266 | resolved "http://registry.npm.taobao.org/jest-mock/download/jest-mock-18.0.0.tgz#5c248846ea33fa558b526f5312ab4a6765e489b3" 2267 | 2268 | jest-snapshot@^18.1.0: 2269 | version "18.1.0" 2270 | resolved "http://registry.npm.taobao.org/jest-snapshot/download/jest-snapshot-18.1.0.tgz#55b96d2ee639c9bce76f87f2a3fd40b71c7a5916" 2271 | dependencies: 2272 | jest-diff "^18.1.0" 2273 | jest-file-exists "^17.0.0" 2274 | jest-matcher-utils "^18.1.0" 2275 | jest-util "^18.1.0" 2276 | natural-compare "^1.4.0" 2277 | pretty-format "^18.1.0" 2278 | 2279 | jest-util@^18.1.0: 2280 | version "18.1.0" 2281 | resolved "http://registry.npm.taobao.org/jest-util/download/jest-util-18.1.0.tgz#3a99c32114ab17f84be094382527006e6d4bfc6a" 2282 | dependencies: 2283 | chalk "^1.1.1" 2284 | diff "^3.0.0" 2285 | graceful-fs "^4.1.6" 2286 | jest-file-exists "^17.0.0" 2287 | jest-mock "^18.0.0" 2288 | mkdirp "^0.5.1" 2289 | 2290 | jodid25519@^1.0.0: 2291 | version "1.0.2" 2292 | resolved "http://registry.npm.taobao.org/jodid25519/download/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967" 2293 | dependencies: 2294 | jsbn "~0.1.0" 2295 | 2296 | js-tokens@^3.0.0: 2297 | version "3.0.1" 2298 | resolved "http://registry.npm.taobao.org/js-tokens/download/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" 2299 | 2300 | js-yaml@^3.5.1: 2301 | version "3.8.2" 2302 | resolved "http://registry.npm.taobao.org/js-yaml/download/js-yaml-3.8.2.tgz#02d3e2c0f6beab20248d412c352203827d786721" 2303 | dependencies: 2304 | argparse "^1.0.7" 2305 | esprima "^3.1.1" 2306 | 2307 | jsbn@~0.1.0: 2308 | version "0.1.1" 2309 | resolved "http://registry.npm.taobao.org/jsbn/download/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" 2310 | 2311 | jsesc@^1.3.0: 2312 | version "1.3.0" 2313 | resolved "http://registry.npm.taobao.org/jsesc/download/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" 2314 | 2315 | jsesc@~0.5.0: 2316 | version "0.5.0" 2317 | resolved "http://registry.npm.taobao.org/jsesc/download/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" 2318 | 2319 | json-schema@0.2.3: 2320 | version "0.2.3" 2321 | resolved "http://registry.npm.taobao.org/json-schema/download/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" 2322 | 2323 | json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: 2324 | version "1.0.1" 2325 | resolved "http://registry.npm.taobao.org/json-stable-stringify/download/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" 2326 | dependencies: 2327 | jsonify "~0.0.0" 2328 | 2329 | json-stringify-safe@~5.0.1: 2330 | version "5.0.1" 2331 | resolved "http://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" 2332 | 2333 | json5@^0.5.0: 2334 | version "0.5.1" 2335 | resolved "http://registry.npm.taobao.org/json5/download/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" 2336 | 2337 | jsonify@~0.0.0: 2338 | version "0.0.0" 2339 | resolved "http://registry.npm.taobao.org/jsonify/download/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" 2340 | 2341 | jsonpointer@^4.0.0: 2342 | version "4.0.1" 2343 | resolved "http://registry.npm.taobao.org/jsonpointer/download/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" 2344 | 2345 | jsprim@^1.2.2: 2346 | version "1.4.0" 2347 | resolved "http://registry.npm.taobao.org/jsprim/download/jsprim-1.4.0.tgz#a3b87e40298d8c380552d8cc7628a0bb95a22918" 2348 | dependencies: 2349 | assert-plus "1.0.0" 2350 | extsprintf "1.0.2" 2351 | json-schema "0.2.3" 2352 | verror "1.3.6" 2353 | 2354 | keygrip@~1.0.1: 2355 | version "1.0.1" 2356 | resolved "http://registry.npm.taobao.org/keygrip/download/keygrip-1.0.1.tgz#b02fa4816eef21a8c4b35ca9e52921ffc89a30e9" 2357 | 2358 | kind-of@^3.0.2: 2359 | version "3.1.0" 2360 | resolved "http://registry.npm.taobao.org/kind-of/download/kind-of-3.1.0.tgz#475d698a5e49ff5e53d14e3e732429dc8bf4cf47" 2361 | dependencies: 2362 | is-buffer "^1.0.2" 2363 | 2364 | koa-compose@^3.0.0: 2365 | version "3.2.1" 2366 | resolved "http://registry.npm.taobao.org/koa-compose/download/koa-compose-3.2.1.tgz#a85ccb40b7d986d8e5a345b3a1ace8eabcf54de7" 2367 | dependencies: 2368 | any-promise "^1.1.0" 2369 | 2370 | koa-convert@^1.2.0: 2371 | version "1.2.0" 2372 | resolved "http://registry.npm.taobao.org/koa-convert/download/koa-convert-1.2.0.tgz#da40875df49de0539098d1700b50820cebcd21d0" 2373 | dependencies: 2374 | co "^4.6.0" 2375 | koa-compose "^3.0.0" 2376 | 2377 | koa-is-json@^1.0.0: 2378 | version "1.0.0" 2379 | resolved "http://registry.npm.taobao.org/koa-is-json/download/koa-is-json-1.0.0.tgz#273c07edcdcb8df6a2c1ab7d59ee76491451ec14" 2380 | 2381 | koa-router@next: 2382 | version "7.0.1" 2383 | resolved "http://registry.npm.taobao.org/koa-router/download/koa-router-7.0.1.tgz#800a61d0a3342d3d1f96d8c688b84ed2a6314d97" 2384 | dependencies: 2385 | debug "^2.2.0" 2386 | http-errors "^1.3.1" 2387 | koa-compose "^3.0.0" 2388 | methods "^1.0.1" 2389 | path-to-regexp "^1.1.1" 2390 | 2391 | koa@^2: 2392 | version "2.2.0" 2393 | resolved "http://registry.npm.taobao.org/koa/download/koa-2.2.0.tgz#b055933187849d540ad8b9f731baaa4be97c652d" 2394 | dependencies: 2395 | accepts "^1.2.2" 2396 | content-disposition "~0.5.0" 2397 | content-type "^1.0.0" 2398 | cookies "~0.7.0" 2399 | debug "*" 2400 | delegates "^1.0.0" 2401 | depd "^1.1.0" 2402 | destroy "^1.0.3" 2403 | error-inject "~1.0.0" 2404 | escape-html "~1.0.1" 2405 | fresh "^0.5.0" 2406 | http-assert "^1.1.0" 2407 | http-errors "^1.2.8" 2408 | is-generator-function "^1.0.3" 2409 | koa-compose "^3.0.0" 2410 | koa-convert "^1.2.0" 2411 | koa-is-json "^1.0.0" 2412 | mime-types "^2.0.7" 2413 | on-finished "^2.1.0" 2414 | only "0.0.2" 2415 | parseurl "^1.3.0" 2416 | statuses "^1.2.0" 2417 | type-is "^1.5.5" 2418 | vary "^1.0.0" 2419 | 2420 | last-line-stream@^1.0.0: 2421 | version "1.0.0" 2422 | resolved "http://registry.npm.taobao.org/last-line-stream/download/last-line-stream-1.0.0.tgz#d1b64d69f86ff24af2d04883a2ceee14520a5600" 2423 | dependencies: 2424 | through2 "^2.0.0" 2425 | 2426 | latest-version@^2.0.0: 2427 | version "2.0.0" 2428 | resolved "http://registry.npm.taobao.org/latest-version/download/latest-version-2.0.0.tgz#56f8d6139620847b8017f8f1f4d78e211324168b" 2429 | dependencies: 2430 | package-json "^2.0.0" 2431 | 2432 | lazy-cache@^1.0.3: 2433 | version "1.0.4" 2434 | resolved "http://registry.npm.taobao.org/lazy-cache/download/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" 2435 | 2436 | lazy-req@^1.1.0: 2437 | version "1.1.0" 2438 | resolved "http://registry.npm.taobao.org/lazy-req/download/lazy-req-1.1.0.tgz#bdaebead30f8d824039ce0ce149d4daa07ba1fac" 2439 | 2440 | lcid@^1.0.0: 2441 | version "1.0.0" 2442 | resolved "http://registry.npm.taobao.org/lcid/download/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" 2443 | dependencies: 2444 | invert-kv "^1.0.0" 2445 | 2446 | levn@^0.3.0, levn@~0.3.0: 2447 | version "0.3.0" 2448 | resolved "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" 2449 | dependencies: 2450 | prelude-ls "~1.1.2" 2451 | type-check "~0.3.2" 2452 | 2453 | load-json-file@^1.0.0: 2454 | version "1.1.0" 2455 | resolved "http://registry.npm.taobao.org/load-json-file/download/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" 2456 | dependencies: 2457 | graceful-fs "^4.1.2" 2458 | parse-json "^2.2.0" 2459 | pify "^2.0.0" 2460 | pinkie-promise "^2.0.0" 2461 | strip-bom "^2.0.0" 2462 | 2463 | load-json-file@^2.0.0: 2464 | version "2.0.0" 2465 | resolved "http://registry.npm.taobao.org/load-json-file/download/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" 2466 | dependencies: 2467 | graceful-fs "^4.1.2" 2468 | parse-json "^2.2.0" 2469 | pify "^2.0.0" 2470 | strip-bom "^3.0.0" 2471 | 2472 | locate-path@^2.0.0: 2473 | version "2.0.0" 2474 | resolved "http://registry.npm.taobao.org/locate-path/download/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" 2475 | dependencies: 2476 | p-locate "^2.0.0" 2477 | path-exists "^3.0.0" 2478 | 2479 | lodash.debounce@^4.0.3: 2480 | version "4.0.8" 2481 | resolved "http://registry.npm.taobao.org/lodash.debounce/download/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" 2482 | 2483 | lodash.difference@^4.3.0: 2484 | version "4.5.0" 2485 | resolved "http://registry.npm.taobao.org/lodash.difference/download/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c" 2486 | 2487 | lodash.flatten@^4.2.0: 2488 | version "4.4.0" 2489 | resolved "http://registry.npm.taobao.org/lodash.flatten/download/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" 2490 | 2491 | lodash.isequal@^4.5.0: 2492 | version "4.5.0" 2493 | resolved "http://registry.npm.taobao.org/lodash.isequal/download/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" 2494 | 2495 | lodash@^4.0.0, lodash@^4.2.0, lodash@^4.3.0: 2496 | version "4.17.4" 2497 | resolved "http://registry.npm.taobao.org/lodash/download/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" 2498 | 2499 | longest@^1.0.1: 2500 | version "1.0.1" 2501 | resolved "http://registry.npm.taobao.org/longest/download/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" 2502 | 2503 | loose-envify@^1.0.0: 2504 | version "1.3.1" 2505 | resolved "http://registry.npm.taobao.org/loose-envify/download/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" 2506 | dependencies: 2507 | js-tokens "^3.0.0" 2508 | 2509 | loud-rejection@^1.0.0, loud-rejection@^1.2.0: 2510 | version "1.6.0" 2511 | resolved "http://registry.npm.taobao.org/loud-rejection/download/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" 2512 | dependencies: 2513 | currently-unhandled "^0.4.1" 2514 | signal-exit "^3.0.0" 2515 | 2516 | lowercase-keys@^1.0.0: 2517 | version "1.0.0" 2518 | resolved "http://registry.npm.taobao.org/lowercase-keys/download/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" 2519 | 2520 | lru-cache@^4.0.1: 2521 | version "4.0.2" 2522 | resolved "http://registry.npm.taobao.org/lru-cache/download/lru-cache-4.0.2.tgz#1d17679c069cda5d040991a09dbc2c0db377e55e" 2523 | dependencies: 2524 | pseudomap "^1.0.1" 2525 | yallist "^2.0.0" 2526 | 2527 | map-obj@^1.0.0, map-obj@^1.0.1: 2528 | version "1.0.1" 2529 | resolved "http://registry.npm.taobao.org/map-obj/download/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" 2530 | 2531 | matcher@^0.1.1: 2532 | version "0.1.2" 2533 | resolved "http://registry.npm.taobao.org/matcher/download/matcher-0.1.2.tgz#ef20cbde64c24c50cc61af5b83ee0b1b8ff00101" 2534 | dependencies: 2535 | escape-string-regexp "^1.0.4" 2536 | 2537 | max-timeout@^1.0.0: 2538 | version "1.0.0" 2539 | resolved "http://registry.npm.taobao.org/max-timeout/download/max-timeout-1.0.0.tgz#b68f69a2f99e0b476fd4cb23e2059ca750715e1f" 2540 | 2541 | md5-hex@^1.2.0, md5-hex@^1.3.0: 2542 | version "1.3.0" 2543 | resolved "http://registry.npm.taobao.org/md5-hex/download/md5-hex-1.3.0.tgz#d2c4afe983c4370662179b8cad145219135046c4" 2544 | dependencies: 2545 | md5-o-matic "^0.1.1" 2546 | 2547 | md5-hex@^2.0.0: 2548 | version "2.0.0" 2549 | resolved "http://registry.npm.taobao.org/md5-hex/download/md5-hex-2.0.0.tgz#d0588e9f1c74954492ecd24ac0ac6ce997d92e33" 2550 | dependencies: 2551 | md5-o-matic "^0.1.1" 2552 | 2553 | md5-o-matic@^0.1.1: 2554 | version "0.1.1" 2555 | resolved "http://registry.npm.taobao.org/md5-o-matic/download/md5-o-matic-0.1.1.tgz#822bccd65e117c514fab176b25945d54100a03c3" 2556 | 2557 | media-typer@0.3.0: 2558 | version "0.3.0" 2559 | resolved "http://registry.npm.taobao.org/media-typer/download/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" 2560 | 2561 | meow@^3.7.0: 2562 | version "3.7.0" 2563 | resolved "http://registry.npm.taobao.org/meow/download/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" 2564 | dependencies: 2565 | camelcase-keys "^2.0.0" 2566 | decamelize "^1.1.2" 2567 | loud-rejection "^1.0.0" 2568 | map-obj "^1.0.1" 2569 | minimist "^1.1.3" 2570 | normalize-package-data "^2.3.4" 2571 | object-assign "^4.0.1" 2572 | read-pkg-up "^1.0.1" 2573 | redent "^1.0.0" 2574 | trim-newlines "^1.0.0" 2575 | 2576 | merge-source-map@^1.0.2: 2577 | version "1.0.3" 2578 | resolved "http://registry.npm.taobao.org/merge-source-map/download/merge-source-map-1.0.3.tgz#da1415f2722a5119db07b14c4f973410863a2abf" 2579 | dependencies: 2580 | source-map "^0.5.3" 2581 | 2582 | methods@^1.0.1, methods@^1.1.1, methods@~1.1.2: 2583 | version "1.1.2" 2584 | resolved "http://registry.npm.taobao.org/methods/download/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" 2585 | 2586 | micromatch@^2.1.5, micromatch@^2.3.11: 2587 | version "2.3.11" 2588 | resolved "http://registry.npm.taobao.org/micromatch/download/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" 2589 | dependencies: 2590 | arr-diff "^2.0.0" 2591 | array-unique "^0.2.1" 2592 | braces "^1.8.2" 2593 | expand-brackets "^0.1.4" 2594 | extglob "^0.3.1" 2595 | filename-regex "^2.0.0" 2596 | is-extglob "^1.0.0" 2597 | is-glob "^2.0.1" 2598 | kind-of "^3.0.2" 2599 | normalize-path "^2.0.1" 2600 | object.omit "^2.0.0" 2601 | parse-glob "^3.0.4" 2602 | regex-cache "^0.4.2" 2603 | 2604 | mime-db@~1.26.0: 2605 | version "1.26.0" 2606 | resolved "http://registry.npm.taobao.org/mime-db/download/mime-db-1.26.0.tgz#eaffcd0e4fc6935cf8134da246e2e6c35305adff" 2607 | 2608 | mime-types@^2.0.7, mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.13, mime-types@~2.1.7: 2609 | version "2.1.14" 2610 | resolved "http://registry.npm.taobao.org/mime-types/download/mime-types-2.1.14.tgz#f7ef7d97583fcaf3b7d282b6f8b5679dab1e94ee" 2611 | dependencies: 2612 | mime-db "~1.26.0" 2613 | 2614 | mime@^1.3.4: 2615 | version "1.3.4" 2616 | resolved "http://registry.npm.taobao.org/mime/download/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" 2617 | 2618 | mimic-fn@^1.0.0: 2619 | version "1.1.0" 2620 | resolved "http://registry.npm.taobao.org/mimic-fn/download/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" 2621 | 2622 | mini-deep-assign@0.0.6: 2623 | version "0.0.6" 2624 | resolved "http://registry.npm.taobao.org/mini-deep-assign/download/mini-deep-assign-0.0.6.tgz#436f650192d9898e440dc743d351e9c58c8055f0" 2625 | 2626 | minimatch@^3.0.0, minimatch@^3.0.2: 2627 | version "3.0.3" 2628 | resolved "http://registry.npm.taobao.org/minimatch/download/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" 2629 | dependencies: 2630 | brace-expansion "^1.0.0" 2631 | 2632 | minimist@0.0.8, minimist@~0.0.1: 2633 | version "0.0.8" 2634 | resolved "http://registry.npm.taobao.org/minimist/download/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 2635 | 2636 | minimist@^1.1.3, minimist@^1.2.0: 2637 | version "1.2.0" 2638 | resolved "http://registry.npm.taobao.org/minimist/download/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 2639 | 2640 | "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1: 2641 | version "0.5.1" 2642 | resolved "http://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 2643 | dependencies: 2644 | minimist "0.0.8" 2645 | 2646 | module-parent@0.0.2: 2647 | version "0.0.2" 2648 | resolved "http://registry.npm.taobao.org/module-parent/download/module-parent-0.0.2.tgz#be1cbb3cb6a55060fc86467d2f2d2cd0a600e199" 2649 | 2650 | ms@0.7.2, ms@^0.7.1: 2651 | version "0.7.2" 2652 | resolved "http://registry.npm.taobao.org/ms/download/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" 2653 | 2654 | multimatch@^2.1.0: 2655 | version "2.1.0" 2656 | resolved "http://registry.npm.taobao.org/multimatch/download/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b" 2657 | dependencies: 2658 | array-differ "^1.0.0" 2659 | array-union "^1.0.1" 2660 | arrify "^1.0.0" 2661 | minimatch "^3.0.0" 2662 | 2663 | mute-stream@0.0.5: 2664 | version "0.0.5" 2665 | resolved "http://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" 2666 | 2667 | nan@^2.3.0: 2668 | version "2.5.1" 2669 | resolved "http://registry.npm.taobao.org/nan/download/nan-2.5.1.tgz#d5b01691253326a97a2bbee9e61c55d8d60351e2" 2670 | 2671 | natural-compare@^1.4.0: 2672 | version "1.4.0" 2673 | resolved "http://registry.npm.taobao.org/natural-compare/download/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 2674 | 2675 | negotiator@0.6.1: 2676 | version "0.6.1" 2677 | resolved "http://registry.npm.taobao.org/negotiator/download/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" 2678 | 2679 | node-pre-gyp@^0.6.29: 2680 | version "0.6.34" 2681 | resolved "http://registry.npm.taobao.org/node-pre-gyp/download/node-pre-gyp-0.6.34.tgz#94ad1c798a11d7fc67381b50d47f8cc18d9799f7" 2682 | dependencies: 2683 | mkdirp "^0.5.1" 2684 | nopt "^4.0.1" 2685 | npmlog "^4.0.2" 2686 | rc "^1.1.7" 2687 | request "^2.81.0" 2688 | rimraf "^2.6.1" 2689 | semver "^5.3.0" 2690 | tar "^2.2.1" 2691 | tar-pack "^3.4.0" 2692 | 2693 | node-status-codes@^1.0.0: 2694 | version "1.0.0" 2695 | resolved "http://registry.npm.taobao.org/node-status-codes/download/node-status-codes-1.0.0.tgz#5ae5541d024645d32a58fcddc9ceecea7ae3ac2f" 2696 | 2697 | nopt@^4.0.1: 2698 | version "4.0.1" 2699 | resolved "http://registry.npm.taobao.org/nopt/download/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" 2700 | dependencies: 2701 | abbrev "1" 2702 | osenv "^0.1.4" 2703 | 2704 | normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: 2705 | version "2.3.6" 2706 | resolved "http://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.3.6.tgz#498fa420c96401f787402ba21e600def9f981fff" 2707 | dependencies: 2708 | hosted-git-info "^2.1.4" 2709 | is-builtin-module "^1.0.0" 2710 | semver "2 || 3 || 4 || 5" 2711 | validate-npm-package-license "^3.0.1" 2712 | 2713 | normalize-path@^2.0.1: 2714 | version "2.0.1" 2715 | resolved "http://registry.npm.taobao.org/normalize-path/download/normalize-path-2.0.1.tgz#47886ac1662760d4261b7d979d241709d3ce3f7a" 2716 | 2717 | npm-run-path@^2.0.0: 2718 | version "2.0.2" 2719 | resolved "http://registry.npm.taobao.org/npm-run-path/download/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" 2720 | dependencies: 2721 | path-key "^2.0.0" 2722 | 2723 | npmlog@^4.0.2: 2724 | version "4.0.2" 2725 | resolved "http://registry.npm.taobao.org/npmlog/download/npmlog-4.0.2.tgz#d03950e0e78ce1527ba26d2a7592e9348ac3e75f" 2726 | dependencies: 2727 | are-we-there-yet "~1.1.2" 2728 | console-control-strings "~1.1.0" 2729 | gauge "~2.7.1" 2730 | set-blocking "~2.0.0" 2731 | 2732 | number-is-nan@^1.0.0: 2733 | version "1.0.1" 2734 | resolved "http://registry.npm.taobao.org/number-is-nan/download/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 2735 | 2736 | nyc@^10.2.0: 2737 | version "10.2.0" 2738 | resolved "http://registry.npm.taobao.org/nyc/download/nyc-10.2.0.tgz#facd90240600c9aa4dd81ea99c2fb6a85c53de0c" 2739 | dependencies: 2740 | archy "^1.0.0" 2741 | arrify "^1.0.1" 2742 | caching-transform "^1.0.0" 2743 | convert-source-map "^1.3.0" 2744 | debug-log "^1.0.1" 2745 | default-require-extensions "^1.0.0" 2746 | find-cache-dir "^0.1.1" 2747 | find-up "^1.1.2" 2748 | foreground-child "^1.5.3" 2749 | glob "^7.0.6" 2750 | istanbul-lib-coverage "^1.0.2" 2751 | istanbul-lib-hook "^1.0.5" 2752 | istanbul-lib-instrument "^1.7.0" 2753 | istanbul-lib-report "^1.0.0" 2754 | istanbul-lib-source-maps "^1.1.1" 2755 | istanbul-reports "^1.0.2" 2756 | md5-hex "^1.2.0" 2757 | merge-source-map "^1.0.2" 2758 | micromatch "^2.3.11" 2759 | mkdirp "^0.5.0" 2760 | resolve-from "^2.0.0" 2761 | rimraf "^2.5.4" 2762 | signal-exit "^3.0.1" 2763 | spawn-wrap "1.2.4" 2764 | test-exclude "^4.0.0" 2765 | yargs "^7.0.2" 2766 | yargs-parser "^4.0.2" 2767 | 2768 | oauth-sign@~0.8.1: 2769 | version "0.8.2" 2770 | resolved "http://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" 2771 | 2772 | object-assign@^4.0.1, object-assign@^4.1.0: 2773 | version "4.1.1" 2774 | resolved "http://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 2775 | 2776 | object.omit@^2.0.0: 2777 | version "2.0.1" 2778 | resolved "http://registry.npm.taobao.org/object.omit/download/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" 2779 | dependencies: 2780 | for-own "^0.1.4" 2781 | is-extendable "^0.1.1" 2782 | 2783 | observable-to-promise@^0.4.0: 2784 | version "0.4.0" 2785 | resolved "http://registry.npm.taobao.org/observable-to-promise/download/observable-to-promise-0.4.0.tgz#28afe71645308f2d41d71f47ad3fece1a377e52b" 2786 | dependencies: 2787 | is-observable "^0.2.0" 2788 | symbol-observable "^0.2.2" 2789 | 2790 | on-finished@^2.1.0: 2791 | version "2.3.0" 2792 | resolved "http://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" 2793 | dependencies: 2794 | ee-first "1.1.1" 2795 | 2796 | once@^1.3.0, once@^1.3.3: 2797 | version "1.4.0" 2798 | resolved "http://registry.npm.taobao.org/once/download/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 2799 | dependencies: 2800 | wrappy "1" 2801 | 2802 | onetime@^1.0.0: 2803 | version "1.1.0" 2804 | resolved "http://registry.npm.taobao.org/onetime/download/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" 2805 | 2806 | onetime@^2.0.0: 2807 | version "2.0.1" 2808 | resolved "http://registry.npm.taobao.org/onetime/download/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" 2809 | dependencies: 2810 | mimic-fn "^1.0.0" 2811 | 2812 | only@0.0.2: 2813 | version "0.0.2" 2814 | resolved "http://registry.npm.taobao.org/only/download/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4" 2815 | 2816 | optimist@^0.6.1: 2817 | version "0.6.1" 2818 | resolved "http://registry.npm.taobao.org/optimist/download/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" 2819 | dependencies: 2820 | minimist "~0.0.1" 2821 | wordwrap "~0.0.2" 2822 | 2823 | option-chain@^0.1.0: 2824 | version "0.1.1" 2825 | resolved "http://registry.npm.taobao.org/option-chain/download/option-chain-0.1.1.tgz#e9b811e006f1c0f54802f28295bfc8970f8dcfbd" 2826 | dependencies: 2827 | object-assign "^4.0.1" 2828 | 2829 | optionator@^0.8.2: 2830 | version "0.8.2" 2831 | resolved "http://registry.npm.taobao.org/optionator/download/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" 2832 | dependencies: 2833 | deep-is "~0.1.3" 2834 | fast-levenshtein "~2.0.4" 2835 | levn "~0.3.0" 2836 | prelude-ls "~1.1.2" 2837 | type-check "~0.3.2" 2838 | wordwrap "~1.0.0" 2839 | 2840 | os-homedir@^1.0.0, os-homedir@^1.0.1: 2841 | version "1.0.2" 2842 | resolved "http://registry.npm.taobao.org/os-homedir/download/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" 2843 | 2844 | os-locale@^1.4.0: 2845 | version "1.4.0" 2846 | resolved "http://registry.npm.taobao.org/os-locale/download/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" 2847 | dependencies: 2848 | lcid "^1.0.0" 2849 | 2850 | os-shim@^0.1.2: 2851 | version "0.1.3" 2852 | resolved "http://registry.npm.taobao.org/os-shim/download/os-shim-0.1.3.tgz#6b62c3791cf7909ea35ed46e17658bb417cb3917" 2853 | 2854 | os-tmpdir@^1.0.0, os-tmpdir@^1.0.1: 2855 | version "1.0.2" 2856 | resolved "http://registry.npm.taobao.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 2857 | 2858 | osenv@^0.1.0, osenv@^0.1.4: 2859 | version "0.1.4" 2860 | resolved "http://registry.npm.taobao.org/osenv/download/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" 2861 | dependencies: 2862 | os-homedir "^1.0.0" 2863 | os-tmpdir "^1.0.0" 2864 | 2865 | output-file-sync@^1.1.0: 2866 | version "1.1.2" 2867 | resolved "http://registry.npm.taobao.org/output-file-sync/download/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76" 2868 | dependencies: 2869 | graceful-fs "^4.1.4" 2870 | mkdirp "^0.5.1" 2871 | object-assign "^4.1.0" 2872 | 2873 | p-finally@^1.0.0: 2874 | version "1.0.0" 2875 | resolved "http://registry.npm.taobao.org/p-finally/download/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" 2876 | 2877 | p-limit@^1.1.0: 2878 | version "1.1.0" 2879 | resolved "http://registry.npm.taobao.org/p-limit/download/p-limit-1.1.0.tgz#b07ff2d9a5d88bec806035895a2bab66a27988bc" 2880 | 2881 | p-locate@^2.0.0: 2882 | version "2.0.0" 2883 | resolved "http://registry.npm.taobao.org/p-locate/download/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" 2884 | dependencies: 2885 | p-limit "^1.1.0" 2886 | 2887 | package-hash@^1.2.0: 2888 | version "1.2.0" 2889 | resolved "http://registry.npm.taobao.org/package-hash/download/package-hash-1.2.0.tgz#003e56cd57b736a6ed6114cc2b81542672770e44" 2890 | dependencies: 2891 | md5-hex "^1.3.0" 2892 | 2893 | package-json@^2.0.0: 2894 | version "2.4.0" 2895 | resolved "http://registry.npm.taobao.org/package-json/download/package-json-2.4.0.tgz#0d15bd67d1cbbddbb2ca222ff2edb86bcb31a8bb" 2896 | dependencies: 2897 | got "^5.0.0" 2898 | registry-auth-token "^3.0.1" 2899 | registry-url "^3.0.3" 2900 | semver "^5.1.0" 2901 | 2902 | parse-glob@^3.0.4: 2903 | version "3.0.4" 2904 | resolved "http://registry.npm.taobao.org/parse-glob/download/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" 2905 | dependencies: 2906 | glob-base "^0.3.0" 2907 | is-dotfile "^1.0.0" 2908 | is-extglob "^1.0.0" 2909 | is-glob "^2.0.0" 2910 | 2911 | parse-json@^2.1.0, parse-json@^2.2.0: 2912 | version "2.2.0" 2913 | resolved "http://registry.npm.taobao.org/parse-json/download/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" 2914 | dependencies: 2915 | error-ex "^1.2.0" 2916 | 2917 | parse-ms@^0.1.0: 2918 | version "0.1.2" 2919 | resolved "http://registry.npm.taobao.org/parse-ms/download/parse-ms-0.1.2.tgz#dd3fa25ed6c2efc7bdde12ad9b46c163aa29224e" 2920 | 2921 | parse-ms@^1.0.0: 2922 | version "1.0.1" 2923 | resolved "http://registry.npm.taobao.org/parse-ms/download/parse-ms-1.0.1.tgz#56346d4749d78f23430ca0c713850aef91aa361d" 2924 | 2925 | parseurl@^1.3.0: 2926 | version "1.3.1" 2927 | resolved "http://registry.npm.taobao.org/parseurl/download/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56" 2928 | 2929 | path-exists@^2.0.0: 2930 | version "2.1.0" 2931 | resolved "http://registry.npm.taobao.org/path-exists/download/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" 2932 | dependencies: 2933 | pinkie-promise "^2.0.0" 2934 | 2935 | path-exists@^3.0.0: 2936 | version "3.0.0" 2937 | resolved "http://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 2938 | 2939 | path-is-absolute@^1.0.0: 2940 | version "1.0.1" 2941 | resolved "http://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 2942 | 2943 | path-is-inside@^1.0.1: 2944 | version "1.0.2" 2945 | resolved "http://registry.npm.taobao.org/path-is-inside/download/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" 2946 | 2947 | path-key@^2.0.0: 2948 | version "2.0.1" 2949 | resolved "http://registry.npm.taobao.org/path-key/download/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" 2950 | 2951 | path-parse@^1.0.5: 2952 | version "1.0.5" 2953 | resolved "http://registry.npm.taobao.org/path-parse/download/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" 2954 | 2955 | path-to-regexp@^1.1.1: 2956 | version "1.7.0" 2957 | resolved "http://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d" 2958 | dependencies: 2959 | isarray "0.0.1" 2960 | 2961 | path-type@^1.0.0: 2962 | version "1.1.0" 2963 | resolved "http://registry.npm.taobao.org/path-type/download/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" 2964 | dependencies: 2965 | graceful-fs "^4.1.2" 2966 | pify "^2.0.0" 2967 | pinkie-promise "^2.0.0" 2968 | 2969 | path-type@^2.0.0: 2970 | version "2.0.0" 2971 | resolved "http://registry.npm.taobao.org/path-type/download/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" 2972 | dependencies: 2973 | pify "^2.0.0" 2974 | 2975 | performance-now@^0.2.0: 2976 | version "0.2.0" 2977 | resolved "http://registry.npm.taobao.org/performance-now/download/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" 2978 | 2979 | pify@^2.0.0: 2980 | version "2.3.0" 2981 | resolved "http://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 2982 | 2983 | pinkie-promise@^1.0.0: 2984 | version "1.0.0" 2985 | resolved "http://registry.npm.taobao.org/pinkie-promise/download/pinkie-promise-1.0.0.tgz#d1da67f5482563bb7cf57f286ae2822ecfbf3670" 2986 | dependencies: 2987 | pinkie "^1.0.0" 2988 | 2989 | pinkie-promise@^2.0.0: 2990 | version "2.0.1" 2991 | resolved "http://registry.npm.taobao.org/pinkie-promise/download/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" 2992 | dependencies: 2993 | pinkie "^2.0.0" 2994 | 2995 | pinkie@^1.0.0: 2996 | version "1.0.0" 2997 | resolved "http://registry.npm.taobao.org/pinkie/download/pinkie-1.0.0.tgz#5a47f28ba1015d0201bda7bf0f358e47bec8c7e4" 2998 | 2999 | pinkie@^2.0.0: 3000 | version "2.0.4" 3001 | resolved "http://registry.npm.taobao.org/pinkie/download/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" 3002 | 3003 | pkg-conf@^2.0.0: 3004 | version "2.0.0" 3005 | resolved "http://registry.npm.taobao.org/pkg-conf/download/pkg-conf-2.0.0.tgz#071c87650403bccfb9c627f58751bfe47c067279" 3006 | dependencies: 3007 | find-up "^2.0.0" 3008 | load-json-file "^2.0.0" 3009 | 3010 | pkg-dir@^1.0.0: 3011 | version "1.0.0" 3012 | resolved "http://registry.npm.taobao.org/pkg-dir/download/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" 3013 | dependencies: 3014 | find-up "^1.0.0" 3015 | 3016 | plur@^1.0.0: 3017 | version "1.0.0" 3018 | resolved "http://registry.npm.taobao.org/plur/download/plur-1.0.0.tgz#db85c6814f5e5e5a3b49efc28d604fec62975156" 3019 | 3020 | plur@^2.0.0: 3021 | version "2.1.2" 3022 | resolved "http://registry.npm.taobao.org/plur/download/plur-2.1.2.tgz#7482452c1a0f508e3e344eaec312c91c29dc655a" 3023 | dependencies: 3024 | irregular-plurals "^1.0.0" 3025 | 3026 | pluralize@^1.2.1: 3027 | version "1.2.1" 3028 | resolved "http://registry.npm.taobao.org/pluralize/download/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" 3029 | 3030 | pre-commit@^1.2.2: 3031 | version "1.2.2" 3032 | resolved "http://registry.npm.taobao.org/pre-commit/download/pre-commit-1.2.2.tgz#dbcee0ee9de7235e57f79c56d7ce94641a69eec6" 3033 | dependencies: 3034 | cross-spawn "^5.0.1" 3035 | spawn-sync "^1.0.15" 3036 | which "1.2.x" 3037 | 3038 | prelude-ls@~1.1.2: 3039 | version "1.1.2" 3040 | resolved "http://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" 3041 | 3042 | prepend-http@^1.0.1: 3043 | version "1.0.4" 3044 | resolved "http://registry.npm.taobao.org/prepend-http/download/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" 3045 | 3046 | preserve@^0.2.0: 3047 | version "0.2.0" 3048 | resolved "http://registry.npm.taobao.org/preserve/download/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" 3049 | 3050 | pretty-format@^18.1.0: 3051 | version "18.1.0" 3052 | resolved "http://registry.npm.taobao.org/pretty-format/download/pretty-format-18.1.0.tgz#fb65a86f7a7f9194963eee91865c1bcf1039e284" 3053 | dependencies: 3054 | ansi-styles "^2.2.1" 3055 | 3056 | pretty-ms@^0.2.1: 3057 | version "0.2.2" 3058 | resolved "http://registry.npm.taobao.org/pretty-ms/download/pretty-ms-0.2.2.tgz#da879a682ff33a37011046f13d627f67c73b84f6" 3059 | dependencies: 3060 | parse-ms "^0.1.0" 3061 | 3062 | pretty-ms@^2.0.0: 3063 | version "2.1.0" 3064 | resolved "http://registry.npm.taobao.org/pretty-ms/download/pretty-ms-2.1.0.tgz#4257c256df3fb0b451d6affaab021884126981dc" 3065 | dependencies: 3066 | is-finite "^1.0.1" 3067 | parse-ms "^1.0.0" 3068 | plur "^1.0.0" 3069 | 3070 | private@^0.1.6: 3071 | version "0.1.7" 3072 | resolved "http://registry.npm.taobao.org/private/download/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1" 3073 | 3074 | process-nextick-args@~1.0.6: 3075 | version "1.0.7" 3076 | resolved "http://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" 3077 | 3078 | progress@^1.1.8: 3079 | version "1.1.8" 3080 | resolved "http://registry.npm.taobao.org/progress/download/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" 3081 | 3082 | pseudomap@^1.0.1: 3083 | version "1.0.2" 3084 | resolved "http://registry.npm.taobao.org/pseudomap/download/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" 3085 | 3086 | punycode@^1.4.1: 3087 | version "1.4.1" 3088 | resolved "http://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" 3089 | 3090 | qs@^6.1.0, qs@~6.4.0: 3091 | version "6.4.0" 3092 | resolved "http://registry.npm.taobao.org/qs/download/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" 3093 | 3094 | randomatic@^1.1.3: 3095 | version "1.1.6" 3096 | resolved "http://registry.npm.taobao.org/randomatic/download/randomatic-1.1.6.tgz#110dcabff397e9dcff7c0789ccc0a49adf1ec5bb" 3097 | dependencies: 3098 | is-number "^2.0.2" 3099 | kind-of "^3.0.2" 3100 | 3101 | rc@^1.0.1, rc@^1.1.6, rc@^1.1.7: 3102 | version "1.1.7" 3103 | resolved "http://registry.npm.taobao.org/rc/download/rc-1.1.7.tgz#c5ea564bb07aff9fd3a5b32e906c1d3a65940fea" 3104 | dependencies: 3105 | deep-extend "~0.4.0" 3106 | ini "~1.3.0" 3107 | minimist "^1.2.0" 3108 | strip-json-comments "~2.0.1" 3109 | 3110 | read-all-stream@^3.0.0: 3111 | version "3.1.0" 3112 | resolved "http://registry.npm.taobao.org/read-all-stream/download/read-all-stream-3.1.0.tgz#35c3e177f2078ef789ee4bfafa4373074eaef4fa" 3113 | dependencies: 3114 | pinkie-promise "^2.0.0" 3115 | readable-stream "^2.0.0" 3116 | 3117 | read-pkg-up@^1.0.1: 3118 | version "1.0.1" 3119 | resolved "http://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" 3120 | dependencies: 3121 | find-up "^1.0.0" 3122 | read-pkg "^1.0.0" 3123 | 3124 | read-pkg-up@^2.0.0: 3125 | version "2.0.0" 3126 | resolved "http://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" 3127 | dependencies: 3128 | find-up "^2.0.0" 3129 | read-pkg "^2.0.0" 3130 | 3131 | read-pkg@^1.0.0: 3132 | version "1.1.0" 3133 | resolved "http://registry.npm.taobao.org/read-pkg/download/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" 3134 | dependencies: 3135 | load-json-file "^1.0.0" 3136 | normalize-package-data "^2.3.2" 3137 | path-type "^1.0.0" 3138 | 3139 | read-pkg@^2.0.0: 3140 | version "2.0.0" 3141 | resolved "http://registry.npm.taobao.org/read-pkg/download/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" 3142 | dependencies: 3143 | load-json-file "^2.0.0" 3144 | normalize-package-data "^2.3.2" 3145 | path-type "^2.0.0" 3146 | 3147 | readable-stream@^2.0.0, "readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2: 3148 | version "2.2.6" 3149 | resolved "http://registry.npm.taobao.org/readable-stream/download/readable-stream-2.2.6.tgz#8b43aed76e71483938d12a8d46c6cf1a00b1f816" 3150 | dependencies: 3151 | buffer-shims "^1.0.0" 3152 | core-util-is "~1.0.0" 3153 | inherits "~2.0.1" 3154 | isarray "~1.0.0" 3155 | process-nextick-args "~1.0.6" 3156 | string_decoder "~0.10.x" 3157 | util-deprecate "~1.0.1" 3158 | 3159 | readdirp@^2.0.0: 3160 | version "2.1.0" 3161 | resolved "http://registry.npm.taobao.org/readdirp/download/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" 3162 | dependencies: 3163 | graceful-fs "^4.1.2" 3164 | minimatch "^3.0.2" 3165 | readable-stream "^2.0.2" 3166 | set-immediate-shim "^1.0.1" 3167 | 3168 | readline2@^1.0.1: 3169 | version "1.0.1" 3170 | resolved "http://registry.npm.taobao.org/readline2/download/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35" 3171 | dependencies: 3172 | code-point-at "^1.0.0" 3173 | is-fullwidth-code-point "^1.0.0" 3174 | mute-stream "0.0.5" 3175 | 3176 | rechoir@^0.6.2: 3177 | version "0.6.2" 3178 | resolved "http://registry.npm.taobao.org/rechoir/download/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" 3179 | dependencies: 3180 | resolve "^1.1.6" 3181 | 3182 | redent@^1.0.0: 3183 | version "1.0.0" 3184 | resolved "http://registry.npm.taobao.org/redent/download/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" 3185 | dependencies: 3186 | indent-string "^2.1.0" 3187 | strip-indent "^1.0.1" 3188 | 3189 | regenerate@^1.2.1: 3190 | version "1.3.2" 3191 | resolved "http://registry.npm.taobao.org/regenerate/download/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260" 3192 | 3193 | regenerator-runtime@^0.10.0: 3194 | version "0.10.3" 3195 | resolved "http://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.10.3.tgz#8c4367a904b51ea62a908ac310bf99ff90a82a3e" 3196 | 3197 | regex-cache@^0.4.2: 3198 | version "0.4.3" 3199 | resolved "http://registry.npm.taobao.org/regex-cache/download/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" 3200 | dependencies: 3201 | is-equal-shallow "^0.1.3" 3202 | is-primitive "^2.0.0" 3203 | 3204 | regexpu-core@^2.0.0: 3205 | version "2.0.0" 3206 | resolved "http://registry.npm.taobao.org/regexpu-core/download/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" 3207 | dependencies: 3208 | regenerate "^1.2.1" 3209 | regjsgen "^0.2.0" 3210 | regjsparser "^0.1.4" 3211 | 3212 | registry-auth-token@^3.0.1: 3213 | version "3.1.0" 3214 | resolved "http://registry.npm.taobao.org/registry-auth-token/download/registry-auth-token-3.1.0.tgz#997c08256e0c7999837b90e944db39d8a790276b" 3215 | dependencies: 3216 | rc "^1.1.6" 3217 | 3218 | registry-url@^3.0.3: 3219 | version "3.1.0" 3220 | resolved "http://registry.npm.taobao.org/registry-url/download/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" 3221 | dependencies: 3222 | rc "^1.0.1" 3223 | 3224 | regjsgen@^0.2.0: 3225 | version "0.2.0" 3226 | resolved "http://registry.npm.taobao.org/regjsgen/download/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" 3227 | 3228 | regjsparser@^0.1.4: 3229 | version "0.1.5" 3230 | resolved "http://registry.npm.taobao.org/regjsparser/download/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" 3231 | dependencies: 3232 | jsesc "~0.5.0" 3233 | 3234 | repeat-element@^1.1.2: 3235 | version "1.1.2" 3236 | resolved "http://registry.npm.taobao.org/repeat-element/download/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" 3237 | 3238 | repeat-string@^1.5.2: 3239 | version "1.6.1" 3240 | resolved "http://registry.npm.taobao.org/repeat-string/download/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" 3241 | 3242 | repeating@^2.0.0: 3243 | version "2.0.1" 3244 | resolved "http://registry.npm.taobao.org/repeating/download/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" 3245 | dependencies: 3246 | is-finite "^1.0.0" 3247 | 3248 | request@^2.81.0: 3249 | version "2.81.0" 3250 | resolved "http://registry.npm.taobao.org/request/download/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" 3251 | dependencies: 3252 | aws-sign2 "~0.6.0" 3253 | aws4 "^1.2.1" 3254 | caseless "~0.12.0" 3255 | combined-stream "~1.0.5" 3256 | extend "~3.0.0" 3257 | forever-agent "~0.6.1" 3258 | form-data "~2.1.1" 3259 | har-validator "~4.2.1" 3260 | hawk "~3.1.3" 3261 | http-signature "~1.1.0" 3262 | is-typedarray "~1.0.0" 3263 | isstream "~0.1.2" 3264 | json-stringify-safe "~5.0.1" 3265 | mime-types "~2.1.7" 3266 | oauth-sign "~0.8.1" 3267 | performance-now "^0.2.0" 3268 | qs "~6.4.0" 3269 | safe-buffer "^5.0.1" 3270 | stringstream "~0.0.4" 3271 | tough-cookie "~2.3.0" 3272 | tunnel-agent "^0.6.0" 3273 | uuid "^3.0.0" 3274 | 3275 | require-dir-all@^0.4.11: 3276 | version "0.4.11" 3277 | resolved "http://registry.npm.taobao.org/require-dir-all/download/require-dir-all-0.4.11.tgz#4554a5aaf9c53e116287c1f652408fb39ddd4026" 3278 | dependencies: 3279 | mini-deep-assign "0.0.6" 3280 | module-parent "0.0.2" 3281 | 3282 | require-directory@^2.1.1: 3283 | version "2.1.1" 3284 | resolved "http://registry.npm.taobao.org/require-directory/download/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" 3285 | 3286 | require-main-filename@^1.0.1: 3287 | version "1.0.1" 3288 | resolved "http://registry.npm.taobao.org/require-main-filename/download/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" 3289 | 3290 | require-precompiled@^0.1.0: 3291 | version "0.1.0" 3292 | resolved "http://registry.npm.taobao.org/require-precompiled/download/require-precompiled-0.1.0.tgz#5a1b52eb70ebed43eb982e974c85ab59571e56fa" 3293 | 3294 | require-uncached@^1.0.2: 3295 | version "1.0.3" 3296 | resolved "http://registry.npm.taobao.org/require-uncached/download/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" 3297 | dependencies: 3298 | caller-path "^0.1.0" 3299 | resolve-from "^1.0.0" 3300 | 3301 | resolve-cwd@^1.0.0: 3302 | version "1.0.0" 3303 | resolved "http://registry.npm.taobao.org/resolve-cwd/download/resolve-cwd-1.0.0.tgz#4eaeea41ed040d1702457df64a42b2b07d246f9f" 3304 | dependencies: 3305 | resolve-from "^2.0.0" 3306 | 3307 | resolve-from@^1.0.0: 3308 | version "1.0.1" 3309 | resolved "http://registry.npm.taobao.org/resolve-from/download/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" 3310 | 3311 | resolve-from@^2.0.0: 3312 | version "2.0.0" 3313 | resolved "http://registry.npm.taobao.org/resolve-from/download/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" 3314 | 3315 | resolve@^1.1.6: 3316 | version "1.3.2" 3317 | resolved "http://registry.npm.taobao.org/resolve/download/resolve-1.3.2.tgz#1f0442c9e0cbb8136e87b9305f932f46c7f28235" 3318 | dependencies: 3319 | path-parse "^1.0.5" 3320 | 3321 | restore-cursor@^1.0.1: 3322 | version "1.0.1" 3323 | resolved "http://registry.npm.taobao.org/restore-cursor/download/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" 3324 | dependencies: 3325 | exit-hook "^1.0.0" 3326 | onetime "^1.0.0" 3327 | 3328 | restore-cursor@^2.0.0: 3329 | version "2.0.0" 3330 | resolved "http://registry.npm.taobao.org/restore-cursor/download/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" 3331 | dependencies: 3332 | onetime "^2.0.0" 3333 | signal-exit "^3.0.2" 3334 | 3335 | right-align@^0.1.1: 3336 | version "0.1.3" 3337 | resolved "http://registry.npm.taobao.org/right-align/download/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" 3338 | dependencies: 3339 | align-text "^0.1.1" 3340 | 3341 | rimraf@2, rimraf@^2.2.8, rimraf@^2.3.3, rimraf@^2.4.4, rimraf@^2.5.1, rimraf@^2.5.4, rimraf@^2.6.1: 3342 | version "2.6.1" 3343 | resolved "http://registry.npm.taobao.org/rimraf/download/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" 3344 | dependencies: 3345 | glob "^7.0.5" 3346 | 3347 | run-async@^0.1.0: 3348 | version "0.1.0" 3349 | resolved "http://registry.npm.taobao.org/run-async/download/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" 3350 | dependencies: 3351 | once "^1.3.0" 3352 | 3353 | rx-lite@^3.1.2: 3354 | version "3.1.2" 3355 | resolved "http://registry.npm.taobao.org/rx-lite/download/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" 3356 | 3357 | safe-buffer@^5.0.1: 3358 | version "5.0.1" 3359 | resolved "http://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7" 3360 | 3361 | semver-diff@^2.0.0: 3362 | version "2.1.0" 3363 | resolved "http://registry.npm.taobao.org/semver-diff/download/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" 3364 | dependencies: 3365 | semver "^5.0.3" 3366 | 3367 | "semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0: 3368 | version "5.3.0" 3369 | resolved "http://registry.npm.taobao.org/semver/download/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" 3370 | 3371 | set-blocking@^2.0.0, set-blocking@~2.0.0: 3372 | version "2.0.0" 3373 | resolved "http://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 3374 | 3375 | set-immediate-shim@^1.0.1: 3376 | version "1.0.1" 3377 | resolved "http://registry.npm.taobao.org/set-immediate-shim/download/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" 3378 | 3379 | setprototypeof@1.0.3: 3380 | version "1.0.3" 3381 | resolved "http://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" 3382 | 3383 | shebang-command@^1.2.0: 3384 | version "1.2.0" 3385 | resolved "http://registry.npm.taobao.org/shebang-command/download/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 3386 | dependencies: 3387 | shebang-regex "^1.0.0" 3388 | 3389 | shebang-regex@^1.0.0: 3390 | version "1.0.0" 3391 | resolved "http://registry.npm.taobao.org/shebang-regex/download/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 3392 | 3393 | shelljs@^0.7.5: 3394 | version "0.7.7" 3395 | resolved "http://registry.npm.taobao.org/shelljs/download/shelljs-0.7.7.tgz#b2f5c77ef97148f4b4f6e22682e10bba8667cff1" 3396 | dependencies: 3397 | glob "^7.0.0" 3398 | interpret "^1.0.0" 3399 | rechoir "^0.6.2" 3400 | 3401 | signal-exit@^2.0.0: 3402 | version "2.1.2" 3403 | resolved "http://registry.npm.taobao.org/signal-exit/download/signal-exit-2.1.2.tgz#375879b1f92ebc3b334480d038dc546a6d558564" 3404 | 3405 | signal-exit@^3.0.0, signal-exit@^3.0.1, signal-exit@^3.0.2: 3406 | version "3.0.2" 3407 | resolved "http://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 3408 | 3409 | slash@^1.0.0: 3410 | version "1.0.0" 3411 | resolved "http://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" 3412 | 3413 | slice-ansi@0.0.4: 3414 | version "0.0.4" 3415 | resolved "http://registry.npm.taobao.org/slice-ansi/download/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" 3416 | 3417 | slide@^1.1.5: 3418 | version "1.1.6" 3419 | resolved "http://registry.npm.taobao.org/slide/download/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" 3420 | 3421 | sntp@1.x.x: 3422 | version "1.0.9" 3423 | resolved "http://registry.npm.taobao.org/sntp/download/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" 3424 | dependencies: 3425 | hoek "2.x.x" 3426 | 3427 | sort-keys@^1.1.1, sort-keys@^1.1.2: 3428 | version "1.1.2" 3429 | resolved "http://registry.npm.taobao.org/sort-keys/download/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" 3430 | dependencies: 3431 | is-plain-obj "^1.0.0" 3432 | 3433 | source-map-support@^0.4.0, source-map-support@^0.4.2: 3434 | version "0.4.14" 3435 | resolved "http://registry.npm.taobao.org/source-map-support/download/source-map-support-0.4.14.tgz#9d4463772598b86271b4f523f6c1f4e02a7d6aef" 3436 | dependencies: 3437 | source-map "^0.5.6" 3438 | 3439 | source-map@^0.4.4: 3440 | version "0.4.4" 3441 | resolved "http://registry.npm.taobao.org/source-map/download/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" 3442 | dependencies: 3443 | amdefine ">=0.0.4" 3444 | 3445 | source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1: 3446 | version "0.5.6" 3447 | resolved "http://registry.npm.taobao.org/source-map/download/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" 3448 | 3449 | spawn-sync@^1.0.15: 3450 | version "1.0.15" 3451 | resolved "http://registry.npm.taobao.org/spawn-sync/download/spawn-sync-1.0.15.tgz#b00799557eb7fb0c8376c29d44e8a1ea67e57476" 3452 | dependencies: 3453 | concat-stream "^1.4.7" 3454 | os-shim "^0.1.2" 3455 | 3456 | spawn-wrap@1.2.4: 3457 | version "1.2.4" 3458 | resolved "http://registry.npm.taobao.org/spawn-wrap/download/spawn-wrap-1.2.4.tgz#920eb211a769c093eebfbd5b0e7a5d2e68ab2e40" 3459 | dependencies: 3460 | foreground-child "^1.3.3" 3461 | mkdirp "^0.5.0" 3462 | os-homedir "^1.0.1" 3463 | rimraf "^2.3.3" 3464 | signal-exit "^2.0.0" 3465 | which "^1.2.4" 3466 | 3467 | spdx-correct@~1.0.0: 3468 | version "1.0.2" 3469 | resolved "http://registry.npm.taobao.org/spdx-correct/download/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" 3470 | dependencies: 3471 | spdx-license-ids "^1.0.2" 3472 | 3473 | spdx-expression-parse@~1.0.0: 3474 | version "1.0.4" 3475 | resolved "http://registry.npm.taobao.org/spdx-expression-parse/download/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" 3476 | 3477 | spdx-license-ids@^1.0.2: 3478 | version "1.2.2" 3479 | resolved "http://registry.npm.taobao.org/spdx-license-ids/download/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" 3480 | 3481 | sprintf-js@~1.0.2: 3482 | version "1.0.3" 3483 | resolved "http://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 3484 | 3485 | sshpk@^1.7.0: 3486 | version "1.11.0" 3487 | resolved "http://registry.npm.taobao.org/sshpk/download/sshpk-1.11.0.tgz#2d8d5ebb4a6fab28ffba37fa62a90f4a3ea59d77" 3488 | dependencies: 3489 | asn1 "~0.2.3" 3490 | assert-plus "^1.0.0" 3491 | dashdash "^1.12.0" 3492 | getpass "^0.1.1" 3493 | optionalDependencies: 3494 | bcrypt-pbkdf "^1.0.0" 3495 | ecc-jsbn "~0.1.1" 3496 | jodid25519 "^1.0.0" 3497 | jsbn "~0.1.0" 3498 | tweetnacl "~0.14.0" 3499 | 3500 | stack-utils@^1.0.0: 3501 | version "1.0.0" 3502 | resolved "http://registry.npm.taobao.org/stack-utils/download/stack-utils-1.0.0.tgz#2392cd8ddbd222492ed6c047960f7414b46c0f83" 3503 | 3504 | "statuses@>= 1.2.1 < 2", "statuses@>= 1.3.1 < 2", statuses@^1.2.0: 3505 | version "1.3.1" 3506 | resolved "http://registry.npm.taobao.org/statuses/download/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" 3507 | 3508 | string-width@^1.0.1, string-width@^1.0.2: 3509 | version "1.0.2" 3510 | resolved "http://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 3511 | dependencies: 3512 | code-point-at "^1.0.0" 3513 | is-fullwidth-code-point "^1.0.0" 3514 | strip-ansi "^3.0.0" 3515 | 3516 | string-width@^2.0.0: 3517 | version "2.0.0" 3518 | resolved "http://registry.npm.taobao.org/string-width/download/string-width-2.0.0.tgz#635c5436cc72a6e0c387ceca278d4e2eec52687e" 3519 | dependencies: 3520 | is-fullwidth-code-point "^2.0.0" 3521 | strip-ansi "^3.0.0" 3522 | 3523 | string_decoder@~0.10.x: 3524 | version "0.10.31" 3525 | resolved "http://registry.npm.taobao.org/string_decoder/download/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" 3526 | 3527 | stringstream@~0.0.4: 3528 | version "0.0.5" 3529 | resolved "http://registry.npm.taobao.org/stringstream/download/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" 3530 | 3531 | strip-ansi@^3.0.0, strip-ansi@^3.0.1: 3532 | version "3.0.1" 3533 | resolved "http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 3534 | dependencies: 3535 | ansi-regex "^2.0.0" 3536 | 3537 | strip-ansi@~0.1.0: 3538 | version "0.1.1" 3539 | resolved "http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991" 3540 | 3541 | strip-bom-buf@^1.0.0: 3542 | version "1.0.0" 3543 | resolved "http://registry.npm.taobao.org/strip-bom-buf/download/strip-bom-buf-1.0.0.tgz#1cb45aaf57530f4caf86c7f75179d2c9a51dd572" 3544 | dependencies: 3545 | is-utf8 "^0.2.1" 3546 | 3547 | strip-bom@^2.0.0: 3548 | version "2.0.0" 3549 | resolved "http://registry.npm.taobao.org/strip-bom/download/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" 3550 | dependencies: 3551 | is-utf8 "^0.2.0" 3552 | 3553 | strip-bom@^3.0.0: 3554 | version "3.0.0" 3555 | resolved "http://registry.npm.taobao.org/strip-bom/download/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 3556 | 3557 | strip-eof@^1.0.0: 3558 | version "1.0.0" 3559 | resolved "http://registry.npm.taobao.org/strip-eof/download/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" 3560 | 3561 | strip-indent@^1.0.1: 3562 | version "1.0.1" 3563 | resolved "http://registry.npm.taobao.org/strip-indent/download/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" 3564 | dependencies: 3565 | get-stdin "^4.0.1" 3566 | 3567 | strip-json-comments@~2.0.1: 3568 | version "2.0.1" 3569 | resolved "http://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 3570 | 3571 | superagent@^3.0.0: 3572 | version "3.5.2" 3573 | resolved "http://registry.npm.taobao.org/superagent/download/superagent-3.5.2.tgz#3361a3971567504c351063abeaae0faa23dbf3f8" 3574 | dependencies: 3575 | component-emitter "^1.2.0" 3576 | cookiejar "^2.0.6" 3577 | debug "^2.2.0" 3578 | extend "^3.0.0" 3579 | form-data "^2.1.1" 3580 | formidable "^1.1.1" 3581 | methods "^1.1.1" 3582 | mime "^1.3.4" 3583 | qs "^6.1.0" 3584 | readable-stream "^2.0.5" 3585 | 3586 | supertest@^3.0.0: 3587 | version "3.0.0" 3588 | resolved "http://registry.npm.taobao.org/supertest/download/supertest-3.0.0.tgz#8d4bb68fd1830ee07033b1c5a5a9a4021c965296" 3589 | dependencies: 3590 | methods "~1.1.2" 3591 | superagent "^3.0.0" 3592 | 3593 | supports-color@^2.0.0: 3594 | version "2.0.0" 3595 | resolved "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" 3596 | 3597 | supports-color@^3.1.2: 3598 | version "3.2.3" 3599 | resolved "http://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" 3600 | dependencies: 3601 | has-flag "^1.0.0" 3602 | 3603 | symbol-observable@^0.2.2: 3604 | version "0.2.4" 3605 | resolved "http://registry.npm.taobao.org/symbol-observable/download/symbol-observable-0.2.4.tgz#95a83db26186d6af7e7a18dbd9760a2f86d08f40" 3606 | 3607 | table@^3.7.8: 3608 | version "3.8.3" 3609 | resolved "http://registry.npm.taobao.org/table/download/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f" 3610 | dependencies: 3611 | ajv "^4.7.0" 3612 | ajv-keywords "^1.0.0" 3613 | chalk "^1.1.1" 3614 | lodash "^4.0.0" 3615 | slice-ansi "0.0.4" 3616 | string-width "^2.0.0" 3617 | 3618 | tar-pack@^3.4.0: 3619 | version "3.4.0" 3620 | resolved "http://registry.npm.taobao.org/tar-pack/download/tar-pack-3.4.0.tgz#23be2d7f671a8339376cbdb0b8fe3fdebf317984" 3621 | dependencies: 3622 | debug "^2.2.0" 3623 | fstream "^1.0.10" 3624 | fstream-ignore "^1.0.5" 3625 | once "^1.3.3" 3626 | readable-stream "^2.1.4" 3627 | rimraf "^2.5.1" 3628 | tar "^2.2.1" 3629 | uid-number "^0.0.6" 3630 | 3631 | tar@^2.2.1: 3632 | version "2.2.1" 3633 | resolved "http://registry.npm.taobao.org/tar/download/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" 3634 | dependencies: 3635 | block-stream "*" 3636 | fstream "^1.0.2" 3637 | inherits "2" 3638 | 3639 | test-exclude@^4.0.0: 3640 | version "4.0.3" 3641 | resolved "http://registry.npm.taobao.org/test-exclude/download/test-exclude-4.0.3.tgz#86a13ce3effcc60e6c90403cf31a27a60ac6c4e7" 3642 | dependencies: 3643 | arrify "^1.0.1" 3644 | micromatch "^2.3.11" 3645 | object-assign "^4.1.0" 3646 | read-pkg-up "^1.0.1" 3647 | require-main-filename "^1.0.1" 3648 | 3649 | text-table@^0.2.0, text-table@~0.2.0: 3650 | version "0.2.0" 3651 | resolved "http://registry.npm.taobao.org/text-table/download/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 3652 | 3653 | through2@^2.0.0: 3654 | version "2.0.3" 3655 | resolved "http://registry.npm.taobao.org/through2/download/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" 3656 | dependencies: 3657 | readable-stream "^2.1.5" 3658 | xtend "~4.0.1" 3659 | 3660 | through@^2.3.6: 3661 | version "2.3.8" 3662 | resolved "http://registry.npm.taobao.org/through/download/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 3663 | 3664 | time-require@^0.1.2: 3665 | version "0.1.2" 3666 | resolved "http://registry.npm.taobao.org/time-require/download/time-require-0.1.2.tgz#f9e12cb370fc2605e11404582ba54ef5ca2b2d98" 3667 | dependencies: 3668 | chalk "^0.4.0" 3669 | date-time "^0.1.1" 3670 | pretty-ms "^0.2.1" 3671 | text-table "^0.2.0" 3672 | 3673 | timed-out@^3.0.0: 3674 | version "3.1.3" 3675 | resolved "http://registry.npm.taobao.org/timed-out/download/timed-out-3.1.3.tgz#95860bfcc5c76c277f8f8326fd0f5b2e20eba217" 3676 | 3677 | to-fast-properties@^1.0.1: 3678 | version "1.0.2" 3679 | resolved "http://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-1.0.2.tgz#f3f5c0c3ba7299a7ef99427e44633257ade43320" 3680 | 3681 | tough-cookie@~2.3.0: 3682 | version "2.3.2" 3683 | resolved "http://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" 3684 | dependencies: 3685 | punycode "^1.4.1" 3686 | 3687 | trim-newlines@^1.0.0: 3688 | version "1.0.0" 3689 | resolved "http://registry.npm.taobao.org/trim-newlines/download/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" 3690 | 3691 | trim-right@^1.0.1: 3692 | version "1.0.1" 3693 | resolved "http://registry.npm.taobao.org/trim-right/download/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" 3694 | 3695 | tryit@^1.0.1: 3696 | version "1.0.3" 3697 | resolved "http://registry.npm.taobao.org/tryit/download/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" 3698 | 3699 | tunnel-agent@^0.6.0: 3700 | version "0.6.0" 3701 | resolved "http://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" 3702 | dependencies: 3703 | safe-buffer "^5.0.1" 3704 | 3705 | tweetnacl@^0.14.3, tweetnacl@~0.14.0: 3706 | version "0.14.5" 3707 | resolved "http://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" 3708 | 3709 | type-check@~0.3.2: 3710 | version "0.3.2" 3711 | resolved "http://registry.npm.taobao.org/type-check/download/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" 3712 | dependencies: 3713 | prelude-ls "~1.1.2" 3714 | 3715 | type-is@^1.5.5: 3716 | version "1.6.14" 3717 | resolved "http://registry.npm.taobao.org/type-is/download/type-is-1.6.14.tgz#e219639c17ded1ca0789092dd54a03826b817cb2" 3718 | dependencies: 3719 | media-typer "0.3.0" 3720 | mime-types "~2.1.13" 3721 | 3722 | typedarray@^0.0.6: 3723 | version "0.0.6" 3724 | resolved "http://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" 3725 | 3726 | uglify-js@^2.6: 3727 | version "2.8.18" 3728 | resolved "http://registry.npm.taobao.org/uglify-js/download/uglify-js-2.8.18.tgz#925d14bae48ab62d1883b41afe6e2261662adb8e" 3729 | dependencies: 3730 | source-map "~0.5.1" 3731 | yargs "~3.10.0" 3732 | optionalDependencies: 3733 | uglify-to-browserify "~1.0.0" 3734 | 3735 | uglify-to-browserify@~1.0.0: 3736 | version "1.0.2" 3737 | resolved "http://registry.npm.taobao.org/uglify-to-browserify/download/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" 3738 | 3739 | uid-number@^0.0.6: 3740 | version "0.0.6" 3741 | resolved "http://registry.npm.taobao.org/uid-number/download/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" 3742 | 3743 | uid2@0.0.3: 3744 | version "0.0.3" 3745 | resolved "http://registry.npm.taobao.org/uid2/download/uid2-0.0.3.tgz#483126e11774df2f71b8b639dcd799c376162b82" 3746 | 3747 | unique-temp-dir@^1.0.0: 3748 | version "1.0.0" 3749 | resolved "http://registry.npm.taobao.org/unique-temp-dir/download/unique-temp-dir-1.0.0.tgz#6dce95b2681ca003eebfb304a415f9cbabcc5385" 3750 | dependencies: 3751 | mkdirp "^0.5.1" 3752 | os-tmpdir "^1.0.1" 3753 | uid2 "0.0.3" 3754 | 3755 | unzip-response@^1.0.2: 3756 | version "1.0.2" 3757 | resolved "http://registry.npm.taobao.org/unzip-response/download/unzip-response-1.0.2.tgz#b984f0877fc0a89c2c773cc1ef7b5b232b5b06fe" 3758 | 3759 | update-notifier@^1.0.0: 3760 | version "1.0.3" 3761 | resolved "http://registry.npm.taobao.org/update-notifier/download/update-notifier-1.0.3.tgz#8f92c515482bd6831b7c93013e70f87552c7cf5a" 3762 | dependencies: 3763 | boxen "^0.6.0" 3764 | chalk "^1.0.0" 3765 | configstore "^2.0.0" 3766 | is-npm "^1.0.0" 3767 | latest-version "^2.0.0" 3768 | lazy-req "^1.1.0" 3769 | semver-diff "^2.0.0" 3770 | xdg-basedir "^2.0.0" 3771 | 3772 | url-parse-lax@^1.0.0: 3773 | version "1.0.0" 3774 | resolved "http://registry.npm.taobao.org/url-parse-lax/download/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" 3775 | dependencies: 3776 | prepend-http "^1.0.1" 3777 | 3778 | user-home@^1.1.1: 3779 | version "1.1.1" 3780 | resolved "http://registry.npm.taobao.org/user-home/download/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" 3781 | 3782 | user-home@^2.0.0: 3783 | version "2.0.0" 3784 | resolved "http://registry.npm.taobao.org/user-home/download/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" 3785 | dependencies: 3786 | os-homedir "^1.0.0" 3787 | 3788 | util-deprecate@~1.0.1: 3789 | version "1.0.2" 3790 | resolved "http://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 3791 | 3792 | uuid@^2.0.1: 3793 | version "2.0.3" 3794 | resolved "http://registry.npm.taobao.org/uuid/download/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" 3795 | 3796 | uuid@^3.0.0: 3797 | version "3.0.1" 3798 | resolved "http://registry.npm.taobao.org/uuid/download/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1" 3799 | 3800 | v8flags@^2.0.10: 3801 | version "2.0.11" 3802 | resolved "http://registry.npm.taobao.org/v8flags/download/v8flags-2.0.11.tgz#bca8f30f0d6d60612cc2c00641e6962d42ae6881" 3803 | dependencies: 3804 | user-home "^1.1.1" 3805 | 3806 | validate-npm-package-license@^3.0.1: 3807 | version "3.0.1" 3808 | resolved "http://registry.npm.taobao.org/validate-npm-package-license/download/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" 3809 | dependencies: 3810 | spdx-correct "~1.0.0" 3811 | spdx-expression-parse "~1.0.0" 3812 | 3813 | vary@^1.0.0: 3814 | version "1.1.1" 3815 | resolved "http://registry.npm.taobao.org/vary/download/vary-1.1.1.tgz#67535ebb694c1d52257457984665323f587e8d37" 3816 | 3817 | verror@1.3.6: 3818 | version "1.3.6" 3819 | resolved "http://registry.npm.taobao.org/verror/download/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c" 3820 | dependencies: 3821 | extsprintf "1.0.2" 3822 | 3823 | which-module@^1.0.0: 3824 | version "1.0.0" 3825 | resolved "http://registry.npm.taobao.org/which-module/download/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" 3826 | 3827 | which@1.2.x, which@^1.2.4, which@^1.2.9: 3828 | version "1.2.12" 3829 | resolved "http://registry.npm.taobao.org/which/download/which-1.2.12.tgz#de67b5e450269f194909ef23ece4ebe416fa1192" 3830 | dependencies: 3831 | isexe "^1.1.1" 3832 | 3833 | wide-align@^1.1.0: 3834 | version "1.1.0" 3835 | resolved "http://registry.npm.taobao.org/wide-align/download/wide-align-1.1.0.tgz#40edde802a71fea1f070da3e62dcda2e7add96ad" 3836 | dependencies: 3837 | string-width "^1.0.1" 3838 | 3839 | widest-line@^1.0.0: 3840 | version "1.0.0" 3841 | resolved "http://registry.npm.taobao.org/widest-line/download/widest-line-1.0.0.tgz#0c09c85c2a94683d0d7eaf8ee097d564bf0e105c" 3842 | dependencies: 3843 | string-width "^1.0.1" 3844 | 3845 | window-size@0.1.0: 3846 | version "0.1.0" 3847 | resolved "http://registry.npm.taobao.org/window-size/download/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" 3848 | 3849 | wordwrap@0.0.2: 3850 | version "0.0.2" 3851 | resolved "http://registry.npm.taobao.org/wordwrap/download/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" 3852 | 3853 | wordwrap@~0.0.2: 3854 | version "0.0.3" 3855 | resolved "http://registry.npm.taobao.org/wordwrap/download/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" 3856 | 3857 | wordwrap@~1.0.0: 3858 | version "1.0.0" 3859 | resolved "http://registry.npm.taobao.org/wordwrap/download/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" 3860 | 3861 | wrap-ansi@^2.0.0: 3862 | version "2.1.0" 3863 | resolved "http://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" 3864 | dependencies: 3865 | string-width "^1.0.1" 3866 | strip-ansi "^3.0.1" 3867 | 3868 | wrappy@1: 3869 | version "1.0.2" 3870 | resolved "http://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 3871 | 3872 | write-file-atomic@^1.1.2, write-file-atomic@^1.1.4: 3873 | version "1.3.1" 3874 | resolved "http://registry.npm.taobao.org/write-file-atomic/download/write-file-atomic-1.3.1.tgz#7d45ba32316328dd1ec7d90f60ebc0d845bb759a" 3875 | dependencies: 3876 | graceful-fs "^4.1.11" 3877 | imurmurhash "^0.1.4" 3878 | slide "^1.1.5" 3879 | 3880 | write-json-file@^2.0.0: 3881 | version "2.0.0" 3882 | resolved "http://registry.npm.taobao.org/write-json-file/download/write-json-file-2.0.0.tgz#0eaec981fcf9288dbc2806cbd26e06ab9bdca4ed" 3883 | dependencies: 3884 | graceful-fs "^4.1.2" 3885 | mkdirp "^0.5.1" 3886 | pify "^2.0.0" 3887 | sort-keys "^1.1.1" 3888 | write-file-atomic "^1.1.2" 3889 | 3890 | write-pkg@^2.0.0: 3891 | version "2.1.0" 3892 | resolved "http://registry.npm.taobao.org/write-pkg/download/write-pkg-2.1.0.tgz#353aa44c39c48c21440f5c08ce6abd46141c9c08" 3893 | dependencies: 3894 | sort-keys "^1.1.2" 3895 | write-json-file "^2.0.0" 3896 | 3897 | write@^0.2.1: 3898 | version "0.2.1" 3899 | resolved "http://registry.npm.taobao.org/write/download/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" 3900 | dependencies: 3901 | mkdirp "^0.5.1" 3902 | 3903 | xdg-basedir@^2.0.0: 3904 | version "2.0.0" 3905 | resolved "http://registry.npm.taobao.org/xdg-basedir/download/xdg-basedir-2.0.0.tgz#edbc903cc385fc04523d966a335504b5504d1bd2" 3906 | dependencies: 3907 | os-homedir "^1.0.0" 3908 | 3909 | xtend@^4.0.0, xtend@~4.0.1: 3910 | version "4.0.1" 3911 | resolved "http://registry.npm.taobao.org/xtend/download/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" 3912 | 3913 | y18n@^3.2.1: 3914 | version "3.2.1" 3915 | resolved "http://registry.npm.taobao.org/y18n/download/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" 3916 | 3917 | yallist@^2.0.0: 3918 | version "2.1.2" 3919 | resolved "http://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" 3920 | 3921 | yargs-parser@^4.0.2: 3922 | version "4.2.1" 3923 | resolved "http://registry.npm.taobao.org/yargs-parser/download/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c" 3924 | dependencies: 3925 | camelcase "^3.0.0" 3926 | 3927 | yargs-parser@^5.0.0: 3928 | version "5.0.0" 3929 | resolved "http://registry.npm.taobao.org/yargs-parser/download/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" 3930 | dependencies: 3931 | camelcase "^3.0.0" 3932 | 3933 | yargs@^7.0.2: 3934 | version "7.0.2" 3935 | resolved "http://registry.npm.taobao.org/yargs/download/yargs-7.0.2.tgz#115b97df1321823e8b8648e8968c782521221f67" 3936 | dependencies: 3937 | camelcase "^3.0.0" 3938 | cliui "^3.2.0" 3939 | decamelize "^1.1.1" 3940 | get-caller-file "^1.0.1" 3941 | os-locale "^1.4.0" 3942 | read-pkg-up "^1.0.1" 3943 | require-directory "^2.1.1" 3944 | require-main-filename "^1.0.1" 3945 | set-blocking "^2.0.0" 3946 | string-width "^1.0.2" 3947 | which-module "^1.0.0" 3948 | y18n "^3.2.1" 3949 | yargs-parser "^5.0.0" 3950 | 3951 | yargs@~3.10.0: 3952 | version "3.10.0" 3953 | resolved "http://registry.npm.taobao.org/yargs/download/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" 3954 | dependencies: 3955 | camelcase "^1.0.2" 3956 | cliui "^2.1.0" 3957 | decamelize "^1.0.0" 3958 | window-size "0.1.0" 3959 | --------------------------------------------------------------------------------