Authored by 周奇琪

Merge branch 'feature/report' into 'master'

fix



See merge request !11
phantomjs_cdnurl=http://npm.taobao.org/mirrors/phantomjs
registry=http://npm.yoho.cn
... ...
... ... @@ -4,7 +4,7 @@ const Router = require('koa-router');
const SqlBuilder = require('../utils/sql-builder');
const request = require('superagent');
const _ = require('lodash');
const alasql = require('alasql');
const jp = require('jsonpath');
const config = require('../../../config/config');
const endpoint = (server) => `http://${server.host}:${server.port}`;
... ... @@ -24,6 +24,12 @@ const APP_NAME = {
h5: 'yohobuywap-node'
};
const TYPE = {
DOMContentLoaded: 0,
load: 0,
firstscreen: 0
};
const profile_sql = {
duration() {
return SqlBuilder.of(TABLE.DURATION);
... ... @@ -34,7 +40,7 @@ const profile_sql = {
};
async function exec(server, sql) {
console.log('influx query from ', `[${server}] `, 'sql =>' ,sql);
console.log('influx query from ', `[${server}] [${DB_NAME}]`, 'sql =>', sql);
return request.get(`${server}/query`)
.query({
q: sql,
... ... @@ -49,7 +55,7 @@ async function exec(server, sql) {
const APP = {
default: {field: '', op: '', value: ''},
pc: {field: 'app', op:'=', value: APP_NAME.pc},
pc: {field: 'app', op: '=', value: APP_NAME.pc},
h5: {field: 'app', op: '=', value: APP_NAME.h5}
};
... ... @@ -69,13 +75,38 @@ function handleZip(items) {
}
function handleRows(rows) {
let result = alasql('SELECT route, AVG(duration) as mean FROM ? GROUP BY route,type', [rows]);
result = alasql('SELECT route, SUM(mean) as mean FROM ? GROUP BY route', [result]);
return result;
}
let stats = rows.reduce((acc, cur) => {
_.updateWith(acc, [cur.route, cur.type, 'duration'], function(n) {
return _.isNil(n) ? cur.duration : n + cur.duration;
});
_.updateWith(acc, [cur.route, cur.type, 'count'], function(n) {
return _.isNil(n) ? 1 : n + 1
});
return acc;
}, {});
let result = _.map(stats, (v,k) => {
let result = {
route: '',
count: 0,
mean: 0,
DOMContentLoaded: 0,
load: 0,
firstscreen: 0
};
result.route = k;
result.count = _.sum(jp.query(v, '$..count'));
result.DOMContentLoaded = +(_.get(v, 'DOMContentLoaded.duration', 0) / _.get(v, 'DOMContentLoaded.count', 1)).toFixed(0);
result.load = +(_.get(v, 'load.duration', 0) / _.get(v, 'load.count', 1)).toFixed(0);
result.firstscreen = +(_.get(v, 'firstscreen.duration', 0) / _.get(v, 'firstscreen.count', 1)).toFixed(0);
result.mean = result.load + result.DOMContentLoaded + result.firstscreen;
return result;
});
function handleCount(rows) {
let result = alasql('SELECT route, COUNT(route) as times FROM ? GROUP BY route', [rows]);
return result;
}
... ... @@ -94,33 +125,11 @@ const profile_service = {
.where('time', '<', end);
}
let rows = await exec(SERVER[server],model.toSql())
.then(result => _.get(result, 'results[0].series[0]', []))
.then(handleZip);
rows = handleRows(rows);
return {code: 200, data: rows}
},
async count(server, start, end, app, lastTime) {
const model = profile_sql.duration()
.select('*')
.where(APP[app]);
if (lastTime) {
model.where('time', '>=', SqlBuilder.raw(`now() - ${lastTime}`))
}
if (start && end) {
model.where('time', '>=', start)
.where('time', '<', end);
}
let rows = await exec(SERVER[server],model.toSql())
.then(result => _.get(result, 'results[0].series[0]', []))
let rows = await exec(SERVER[server], model.toSql())
.then(result => _.get(result, 'results[0].series[0]', []))
.then(handleZip);
rows = handleCount(rows);
rows = handleRows(rows);
return {code: 200, data: rows}
},
... ... @@ -180,19 +189,6 @@ const profile_controller = {
const result = await profile_service.mean(server, start, end, app, lastTime);
ctx.body = result;
},
async count_report_index(ctx) {
await ctx.render('action/profile_count');
},
async count_report_json(ctx) {
const start = ctx.query.start;
const end = ctx.query.end;
const app = ctx.query.app;
const server = ctx.query.server || 'aws';
const lastTime = ctx.query.lastTime;
const result = await profile_service.count(server, start, end, app, lastTime);
ctx.body = result;
},
async time_report_index(ctx) {
await ctx.render('action/profile_time');
},
... ... @@ -225,9 +221,6 @@ const profile_controller = {
r.get('/mean', profile_controller.mean_report_index);
r.get('/mean.json', profile_controller.mean_report_json);
r.get('/count', profile_controller.count_report_index);
r.get('/count.json', profile_controller.count_report_json);
r.get('/time', profile_controller.time_report_index);
r.get('/time.json', profile_controller.time_report_json);
... ...
... ... @@ -51,7 +51,11 @@
<thead class="">
<tr>
<td >接口名称</td>
<td >调用次数</td>
<td >耗时</td>
<td >load</td>
<td >firstscreen</td>
<td >DOMContentLoaded</td>
</thead>
<tbody>
... ... @@ -102,13 +106,21 @@
pageLength: 25,
columns: [
{data: 'route'},
{data: 'mean'}
{data: 'count'},
{data: 'mean'},
{data: 'load'},
{data: 'firstscreen'},
{data: 'DOMContentLoaded'},
],
data: [{
route: '',
mean: ''
count: 0,
mean: 0,
load: 0,
firstscreen: 0,
DOMContentLoaded: 0
}],
order: [[ 1, "desc" ]]
order: [[ 2, "desc" ]]
});
}
... ...
... ... @@ -78,7 +78,6 @@
<li class="parent"><a><i class="fa fa-list"></i> <span>性能统计</span></a>
<ul class="children">
<li><a href="/profile/mean"> <span>调用时间统计</span></a></li>
<li><a href="/profile/count"> <span>调用次数统计</span></a></li>
<li><a href="/profile/time"> <span>调用时间统计</span></a></li>
<li><a href="/profile/error"> <span>错误信息统计</span></a></li>
</ul>
... ...
This diff could not be displayed because it is too large.
... ... @@ -25,7 +25,6 @@
"author": "jiangfeng <jeff.jiang@yoho.cn>",
"license": "ISC",
"dependencies": {
"alasql": "^0.4.3",
"bluebird": "^3.5.0",
"co": "^4.6.0",
"co-body": "^4.2.0",
... ... @@ -36,6 +35,7 @@
"handlebars": "^4.0.5",
"influx": "^4.2.1",
"install": "^0.8.1",
"jsonpath": "^0.2.12",
"koa": "^2.0.0",
"koa-body": "^1.4.0",
"koa-convert": "^1.2.0",
... ... @@ -45,7 +45,7 @@
"koa-session": "^3.3.1",
"koa-static": "^3.0.0",
"lodash": "^4.13.1",
"md5": "^2.1.0",
"md5": "^2.2.1",
"md5-file": "^3.1.1",
"memcached": "^2.2.2",
"moment": "^2.13.0",
... ...
... ... @@ -2,6 +2,10 @@
# yarn lockfile v1
JSONSelect@0.4.0:
version "0.4.0"
resolved "http://npm.yoho.cn/JSONSelect/-/JSONSelect-0.4.0.tgz#a08edcc67eb3fcbe99ed630855344a0cf282bb8d"
abbrev@1, abbrev@~1.0.9:
version "1.0.9"
resolved "http://registry.npm.taobao.org/abbrev/download/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135"
... ... @@ -29,13 +33,6 @@ adler-32@:
exit-on-epipe ""
printj ""
adler-32@~1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/adler-32/-/adler-32-1.1.0.tgz#03551a5c7f0edfbd4fc8fa12a6814978eab651c3"
dependencies:
exit-on-epipe "~1.0.1"
printj "~1.1.0"
after@0.8.1:
version "0.8.1"
resolved "http://registry.npm.taobao.org/after/download/after-0.8.1.tgz#ab5d4fb883f596816d3515f8f791c0af486dd627"
... ... @@ -60,17 +57,6 @@ ajv@^5.1.0:
json-schema-traverse "^0.3.0"
json-stable-stringify "^1.0.1"
alasql@^0.4.3:
version "0.4.3"
resolved "https://registry.yarnpkg.com/alasql/-/alasql-0.4.3.tgz#46f2c3552be7b5c3ff1c01e5e5ae3706bbe075cb"
dependencies:
dom-storage "^2.0.1"
es6-promise "^4.0.5"
lodash "^4.17.4"
request "2.79.0"
xlsx "^0.11.5"
yargs "^5.0.0"
align-text@^0.1.1, align-text@^0.1.3:
version "0.1.4"
resolved "http://registry.npm.taobao.org/align-text/download/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
... ... @@ -380,10 +366,6 @@ camelcase@^1.0.2:
version "1.2.1"
resolved "http://registry.npm.taobao.org/camelcase/download/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"
camelcase@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a"
camelcase@^4.0.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
... ... @@ -413,13 +395,6 @@ cfb@>=0.10.0:
dependencies:
commander ""
cfb@~0.13.1:
version "0.13.1"
resolved "https://registry.yarnpkg.com/cfb/-/cfb-0.13.1.tgz#6506e0ab9b6846be7ef25c758932fe16f64c9c71"
dependencies:
commander "~2.11.0"
printj "~1.1.0"
chalk@^1.0.0, chalk@^1.1.1:
version "1.1.3"
resolved "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
... ... @@ -439,8 +414,8 @@ chalk@^2.0.1:
supports-color "^4.0.0"
charenc@~0.0.1:
version "0.0.1"
resolved "http://registry.npm.taobao.org/charenc/download/charenc-0.0.1.tgz#004cff9feaf102382ed12db58dd6f962796d6e88"
version "0.0.2"
resolved "http://npm.yoho.cn/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667"
chokidar@^1.7.0:
version "1.7.0"
... ... @@ -461,6 +436,10 @@ chownr@~1.0.1:
version "1.0.1"
resolved "http://registry.npm.taobao.org/chownr/download/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181"
cjson@~0.2.1:
version "0.2.1"
resolved "http://npm.yoho.cn/cjson/-/cjson-0.2.1.tgz#73cd8aad65d9e1505f9af1744d3b79c1527682a5"
cli-boxes@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143"
... ... @@ -473,14 +452,6 @@ cliui@^2.1.0:
right-align "^0.1.1"
wordwrap "0.0.2"
cliui@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d"
dependencies:
string-width "^1.0.1"
strip-ansi "^3.0.1"
wrap-ansi "^2.0.0"
clone@^1.0.2:
version "1.0.2"
resolved "http://registry.npm.taobao.org/clone/download/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149"
... ... @@ -509,14 +480,6 @@ code-point-at@^1.0.0:
version "1.1.0"
resolved "http://registry.npm.taobao.org/code-point-at/download/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
codepage@~1.11.0:
version "1.11.0"
resolved "https://registry.yarnpkg.com/codepage/-/codepage-1.11.0.tgz#1076095b9f03b5ca04f43873fa1a627742285de2"
dependencies:
commander "~2.11.0"
exit-on-epipe "~1.0.1"
voc "~1.0.0"
codepage@~1.3.6:
version "1.3.8"
resolved "http://registry.npm.taobao.org/codepage/download/codepage-1.3.8.tgz#4f2e5d7c0975de28f88498058dcb5afcab6a5f71"
... ... @@ -535,6 +498,10 @@ color-name@^1.1.1:
version "1.1.3"
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
colors@0.5.x:
version "0.5.1"
resolved "http://npm.yoho.cn/colors/-/colors-0.5.1.tgz#7d0023eaeb154e8ee9fce75dcb923d0ed1667774"
colors@0.6.2:
version "0.6.2"
resolved "http://registry.npm.taobao.org/colors/download/colors-0.6.2.tgz#2423fe6678ac0c5dae8852e5d0e5be08c997abcc"
... ... @@ -558,10 +525,6 @@ commander@, commander@^2.9.0:
dependencies:
graceful-readlink ">= 1.0.0"
commander@~2.11.0:
version "2.11.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563"
component-bind@1.0.0:
version "1.0.0"
resolved "http://registry.npm.taobao.org/component-bind/download/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1"
... ... @@ -655,13 +618,6 @@ crc-32@:
exit-on-epipe ""
printj ""
crc-32@~1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.1.1.tgz#5d739d5e4c6e352ad8304d73223d483fe55adb8d"
dependencies:
exit-on-epipe "~1.0.1"
printj "~1.1.0"
create-error-class@^3.0.0:
version "3.0.2"
resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6"
... ... @@ -684,8 +640,8 @@ cross-spawn@^5.0.1:
which "^1.2.9"
crypt@~0.0.1:
version "0.0.1"
resolved "http://registry.npm.taobao.org/crypt/download/crypt-0.0.1.tgz#5f11b21a6c05ef1b5e79708366da6374ece1e6a2"
version "0.0.2"
resolved "http://npm.yoho.cn/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b"
cryptiles@2.x.x:
version "2.0.5"
... ... @@ -747,7 +703,7 @@ debuglog@^1.0.1:
version "1.0.1"
resolved "http://registry.npm.taobao.org/debuglog/download/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492"
decamelize@^1.0.0, decamelize@^1.1.1:
decamelize@^1.0.0:
version "1.2.0"
resolved "http://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
... ... @@ -811,10 +767,6 @@ digest-header@^0.0.1:
dependencies:
utility "0.1.11"
dom-storage@^2.0.1:
version "2.0.2"
resolved "https://registry.yarnpkg.com/dom-storage/-/dom-storage-2.0.2.tgz#ed17cbf68abd10e0aef8182713e297c5e4b500b0"
dot-prop@^4.1.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57"
... ... @@ -837,6 +789,10 @@ duplexer@~0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1"
ebnf-parser@~0.1.9:
version "0.1.10"
resolved "http://npm.yoho.cn/ebnf-parser/-/ebnf-parser-0.1.10.tgz#cd1f6ba477c5638c40c97ed9b572db5bab5d8331"
ecc-jsbn@~0.1.1:
version "0.1.1"
resolved "http://registry.npm.taobao.org/ecc-jsbn/download/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505"
... ... @@ -889,12 +845,6 @@ engine.io@1.7.2:
engine.io-parser "1.3.1"
ws "1.1.1"
error-ex@^1.2.0:
version "1.3.1"
resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc"
dependencies:
is-arrayish "^0.2.1"
error-inject@~1.0.0:
version "1.0.0"
resolved "http://registry.npm.taobao.org/error-inject/download/error-inject-1.0.0.tgz#e2b3d91b54aed672f309d950d154850fa11d4f37"
... ... @@ -944,10 +894,6 @@ es6-promise@^3.3.1:
version "3.3.1"
resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613"
es6-promise@^4.0.5:
version "4.1.1"
resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.1.1.tgz#8811e90915d9a0dba36274f0b242dbda78f9c92a"
es6-symbol@3, es6-symbol@^3.0.2, es6-symbol@~3.1:
version "3.1.0"
resolved "http://registry.npm.taobao.org/es6-symbol/download/es6-symbol-3.1.0.tgz#94481c655e7a7cad82eba832d97d5433496d7ffa"
... ... @@ -963,6 +909,24 @@ escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
version "1.0.5"
resolved "http://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
escodegen@0.0.21:
version "0.0.21"
resolved "http://npm.yoho.cn/escodegen/-/escodegen-0.0.21.tgz#53d652cfa1030388279458a5266c5ffc709c63c3"
dependencies:
esprima "~1.0.2"
estraverse "~0.0.4"
optionalDependencies:
source-map ">= 0.1.2"
escodegen@~0.0.24:
version "0.0.28"
resolved "http://npm.yoho.cn/escodegen/-/escodegen-0.0.28.tgz#0e4ff1715f328775d6cab51ac44a406cd7abffd3"
dependencies:
esprima "~1.0.2"
estraverse "~1.3.0"
optionalDependencies:
source-map ">= 0.1.2"
esmangle-evaluator@^1.0.0:
version "1.0.1"
resolved "http://registry.npm.taobao.org/esmangle-evaluator/download/esmangle-evaluator-1.0.1.tgz#620d866ef4861b3311f75766d52a8572bb3c6336"
... ... @@ -975,6 +939,22 @@ esprima-fb@~3001.0001.0000-dev-harmony-fb, esprima-fb@~3001.1.0-dev-harmony-fb:
version "3001.1.0-dev-harmony-fb"
resolved "http://registry.npm.taobao.org/esprima-fb/download/esprima-fb-3001.1.0-dev-harmony-fb.tgz#b77d37abcd38ea0b77426bb8bc2922ce6b426411"
esprima@1.0.x, esprima@~1.0.2:
version "1.0.4"
resolved "http://npm.yoho.cn/esprima/-/esprima-1.0.4.tgz#9f557e08fc3b4d26ece9dd34f8fbf476b62585ad"
esprima@1.2.2:
version "1.2.2"
resolved "http://npm.yoho.cn/esprima/-/esprima-1.2.2.tgz#76a0fd66fcfe154fd292667dc264019750b1657b"
estraverse@~0.0.4:
version "0.0.4"
resolved "http://npm.yoho.cn/estraverse/-/estraverse-0.0.4.tgz#01a0932dfee574684a598af5a67c3bf9b6428db2"
estraverse@~1.3.0:
version "1.3.2"
resolved "http://npm.yoho.cn/estraverse/-/estraverse-1.3.2.tgz#37c2b893ef13d723f276d878d60d8535152a6c42"
event-stream@~3.3.0:
version "3.3.4"
resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571"
... ... @@ -1003,10 +983,6 @@ exit-on-epipe@:
version "0.1.0"
resolved "http://registry.npm.taobao.org/exit-on-epipe/download/exit-on-epipe-0.1.0.tgz#aa2f0155b78b34fe60dd2b462e84637ba5ed0697"
exit-on-epipe@~1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz#0bdd92e87d5285d267daa8171d0eb06159689692"
expand-brackets@^0.1.4:
version "0.1.5"
resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b"
... ... @@ -1068,13 +1044,6 @@ fill-range@^2.1.0:
repeat-element "^1.1.2"
repeat-string "^1.5.2"
find-up@^1.0.0:
version "1.1.2"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
dependencies:
path-exists "^2.0.0"
pinkie-promise "^2.0.0"
for-each@~0.3.2:
version "0.3.2"
resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.2.tgz#2c40450b9348e97f281322593ba96704b9abd4d4"
... ... @@ -1144,12 +1113,6 @@ frac@0.3.1:
version "0.3.1"
resolved "http://registry.npm.taobao.org/frac/download/frac-0.3.1.tgz#577677b7fdcbe6faf7c461f1801d34137cda4354"
frac@~1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/frac/-/frac-1.1.0.tgz#dc437e9c6a646b60b127d82ac4902464445cc1e3"
dependencies:
voc "~1.0.0"
fresh@^0.3.0:
version "0.3.0"
resolved "http://registry.npm.taobao.org/fresh/download/fresh-0.3.0.tgz#651f838e22424e7566de161d8358caa199f83d4f"
... ... @@ -1279,10 +1242,6 @@ generate-object-property@^1.1.0:
dependencies:
is-property "^1.0.0"
get-caller-file@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5"
get-stream@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
... ... @@ -1614,25 +1573,17 @@ interpret@^1.0.0:
version "1.0.1"
resolved "http://registry.npm.taobao.org/interpret/download/interpret-1.0.1.tgz#d579fb7f693b858004947af39fa0db49f795602c"
invert-kv@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
is-arrayish@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
is-binary-path@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898"
dependencies:
binary-extensions "^1.0.0"
is-buffer@^1.0.2, is-buffer@~1.1.1:
is-buffer@^1.0.2:
version "1.1.4"
resolved "http://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.4.tgz#cfc86ccd5dc5a52fa80489111c6920c457e2d98b"
is-buffer@^1.1.5:
is-buffer@^1.1.5, is-buffer@~1.1.1:
version "1.1.5"
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc"
... ... @@ -1765,10 +1716,6 @@ is-typedarray@~1.0.0:
version "1.0.0"
resolved "http://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
is-utf8@^0.2.0:
version "0.2.1"
resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
isarray@0.0.1:
version "0.0.1"
resolved "http://registry.npm.taobao.org/isarray/download/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
... ... @@ -1801,6 +1748,26 @@ jackpot@>=0.0.6:
dependencies:
retry "0.6.0"
jison-lex@0.2.x:
version "0.2.1"
resolved "http://npm.yoho.cn/jison-lex/-/jison-lex-0.2.1.tgz#ac4b815e8cce5132eb12b5dfcfe8d707b8844dfe"
dependencies:
lex-parser "0.1.x"
nomnom "1.5.2"
jison@0.4.13:
version "0.4.13"
resolved "http://npm.yoho.cn/jison/-/jison-0.4.13.tgz#9041707d62241367f58834532b9f19c2c36fac78"
dependencies:
JSONSelect "0.4.0"
cjson "~0.2.1"
ebnf-parser "~0.1.9"
escodegen "0.0.21"
esprima "1.0.x"
jison-lex "0.2.x"
lex-parser "~0.1.3"
nomnom "1.5.2"
jju@^1.1.0:
version "1.3.0"
resolved "http://registry.npm.taobao.org/jju/download/jju-1.3.0.tgz#dadd9ef01924bc728b03f2f7979bdbd62f7a2aaa"
... ... @@ -1857,6 +1824,15 @@ jsonify@~0.0.0:
version "0.0.0"
resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
jsonpath@^0.2.12:
version "0.2.12"
resolved "http://npm.yoho.cn/jsonpath/-/jsonpath-0.2.12.tgz#5bf9d911fb4616c1e3370beceb9f0db24ae34cd2"
dependencies:
esprima "1.2.2"
jison "0.4.13"
static-eval "0.2.3"
underscore "1.7.0"
jsonpointer@^4.0.0:
version "4.0.0"
resolved "http://registry.npm.taobao.org/jsonpointer/download/jsonpointer-4.0.0.tgz#6661e161d2fc445f19f98430231343722e1fcbd5"
... ... @@ -2016,11 +1992,9 @@ lazy-cache@^1.0.3:
version "1.0.4"
resolved "http://registry.npm.taobao.org/lazy-cache/download/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
lcid@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835"
dependencies:
invert-kv "^1.0.0"
lex-parser@0.1.x, lex-parser@~0.1.3:
version "0.1.4"
resolved "http://npm.yoho.cn/lex-parser/-/lex-parser-0.1.4.tgz#64c4f025f17fd53bfb45763faeb16f015a747550"
lie@3.0.2:
version "3.0.2"
... ... @@ -2031,16 +2005,6 @@ lie@3.0.2:
inline-process-browser "^1.0.0"
unreachable-branch-transform "^0.3.0"
load-json-file@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0"
dependencies:
graceful-fs "^4.1.2"
parse-json "^2.2.0"
pify "^2.0.0"
pinkie-promise "^2.0.0"
strip-bom "^2.0.0"
localforage@^1.3.0:
version "1.4.3"
resolved "http://registry.npm.taobao.org/localforage/download/localforage-1.4.3.tgz#a212543c39c7c76424edd12bf474c489aaca494c"
... ... @@ -2105,10 +2069,6 @@ lodash.assign@^3.0.0:
lodash._createassigner "^3.0.0"
lodash.keys "^3.0.0"
lodash.assign@^4.1.0, lodash.assign@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7"
lodash.clonedeep@~4.5.0:
version "4.5.0"
resolved "http://registry.npm.taobao.org/lodash.clonedeep/download/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
... ... @@ -2152,7 +2112,7 @@ lodash.without@~4.4.0:
version "4.4.0"
resolved "http://registry.npm.taobao.org/lodash.without/download/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac"
lodash@^4.11.1, lodash@^4.17.4:
lodash@^4.11.1:
version "4.17.4"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
... ... @@ -2193,9 +2153,9 @@ md5-file@^3.1.1:
version "3.1.1"
resolved "http://registry.npm.taobao.org/md5-file/download/md5-file-3.1.1.tgz#db3c92c09bbda5c2de883fa5490dd711fddbbab9"
md5@^2.1.0:
md5@^2.2.1:
version "2.2.1"
resolved "http://registry.npm.taobao.org/md5/download/md5-2.2.1.tgz#53ab38d5fe3c8891ba465329ea23fac0540126f9"
resolved "http://npm.yoho.cn/md5/-/md5-2.2.1.tgz#53ab38d5fe3c8891ba465329ea23fac0540126f9"
dependencies:
charenc "~0.0.1"
crypt "~0.0.1"
... ... @@ -2442,6 +2402,13 @@ nodemon@^1.11.0:
undefsafe "0.0.3"
update-notifier "^2.2.0"
nomnom@1.5.2:
version "1.5.2"
resolved "http://npm.yoho.cn/nomnom/-/nomnom-1.5.2.tgz#f4345448a853cfbd5c0d26320f2477ab0526fe2f"
dependencies:
colors "0.5.x"
underscore "1.1.x"
"nopt@2 || 3", nopt@~3.0.6:
version "3.0.6"
resolved "http://registry.npm.taobao.org/nopt/download/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9"
... ... @@ -2474,15 +2441,6 @@ normalize-package-data@^2.0.0, "normalize-package-data@~1.0.1 || ^2.0.0", normal
semver "2 || 3 || 4 || 5"
validate-npm-package-license "^3.0.1"
normalize-package-data@^2.3.2:
version "2.4.0"
resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f"
dependencies:
hosted-git-info "^2.1.4"
is-builtin-module "^1.0.0"
semver "2 || 3 || 4 || 5"
validate-npm-package-license "^3.0.1"
normalize-path@^2.0.0, normalize-path@^2.0.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
... ... @@ -2705,12 +2663,6 @@ os-homedir@^1.0.0:
version "1.0.2"
resolved "http://registry.npm.taobao.org/os-homedir/download/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
os-locale@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9"
dependencies:
lcid "^1.0.0"
os-name@~1.0.3:
version "1.0.3"
resolved "http://registry.npm.taobao.org/os-name/download/os-name-1.0.3.tgz#1b379f64835af7c5a7f498b357cb95215c159edf"
... ... @@ -2768,12 +2720,6 @@ parse-glob@^3.0.4:
is-extglob "^1.0.0"
is-glob "^2.0.0"
parse-json@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
dependencies:
error-ex "^1.2.0"
parsejson@0.0.1:
version "0.0.1"
resolved "http://registry.npm.taobao.org/parsejson/download/parsejson-0.0.1.tgz#9b10c6c0d825ab589e685153826de0a3ba278bcc"
... ... @@ -2802,12 +2748,6 @@ path-array@^1.0.0:
dependencies:
array-index "^1.0.0"
path-exists@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b"
dependencies:
pinkie-promise "^2.0.0"
path-is-absolute@1.0.0:
version "1.0.0"
resolved "http://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.0.tgz#263dada66ab3f2fb10bf7f9d24dd8f3e570ef912"
... ... @@ -2834,14 +2774,6 @@ path-to-regexp@^1.1.1:
dependencies:
isarray "0.0.1"
path-type@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
dependencies:
graceful-fs "^4.1.2"
pify "^2.0.0"
pinkie-promise "^2.0.0"
pause-stream@0.0.11, pause-stream@~0.0.11:
version "0.0.11"
resolved "http://registry.npm.taobao.org/pause-stream/download/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445"
... ... @@ -2856,7 +2788,7 @@ performance-now@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
pify@^2.0.0, pify@^2.3.0:
pify@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
... ... @@ -2882,10 +2814,6 @@ printj@:
version "0.1.1"
resolved "http://registry.npm.taobao.org/printj/download/printj-0.1.1.tgz#9d07ef9db9234da8659579e468bd46a7510489b0"
printj@~1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/printj/-/printj-1.1.0.tgz#85487b5e8f96763b0b4a253613bef9dd9b387e3c"
private@~0.1.5:
version "0.1.6"
resolved "http://registry.npm.taobao.org/private/download/private-0.1.6.tgz#55c6a976d0f9bafb9924851350fe47b9b5fbb7c1"
... ... @@ -3027,21 +2955,6 @@ read-package-tree@~5.1.5:
read-package-json "^2.0.0"
readdir-scoped-modules "^1.0.0"
read-pkg-up@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02"
dependencies:
find-up "^1.0.0"
read-pkg "^1.0.0"
read-pkg@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28"
dependencies:
load-json-file "^1.0.0"
normalize-package-data "^2.3.2"
path-type "^1.0.0"
read@1, read@~1.0.1, read@~1.0.7:
version "1.0.7"
resolved "http://registry.npm.taobao.org/read/download/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4"
... ... @@ -3230,31 +3143,6 @@ request@2, request@^2.74.0:
tough-cookie "~2.3.0"
tunnel-agent "~0.4.1"
request@2.79.0:
version "2.79.0"
resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de"
dependencies:
aws-sign2 "~0.6.0"
aws4 "^1.2.1"
caseless "~0.11.0"
combined-stream "~1.0.5"
extend "~3.0.0"
forever-agent "~0.6.1"
form-data "~2.1.1"
har-validator "~2.0.6"
hawk "~3.1.3"
http-signature "~1.1.0"
is-typedarray "~1.0.0"
isstream "~0.1.2"
json-stringify-safe "~5.0.1"
mime-types "~2.1.7"
oauth-sign "~0.8.1"
qs "~6.3.0"
stringstream "~0.0.4"
tough-cookie "~2.3.0"
tunnel-agent "~0.4.1"
uuid "^3.0.0"
request@2.x:
version "2.82.0"
resolved "https://registry.yarnpkg.com/request/-/request-2.82.0.tgz#2ba8a92cd7ac45660ea2b10a53ae67cd247516ea"
... ... @@ -3335,14 +3223,6 @@ request@~2.75.0:
tough-cookie "~2.3.0"
tunnel-agent "~0.4.1"
require-directory@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
require-main-filename@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
resolve-path@^1.3.1:
version "1.3.2"
resolved "http://registry.npm.taobao.org/resolve-path/download/resolve-path-1.3.2.tgz#c20924408aff77466e819da548d7ce40a81d561f"
... ... @@ -3410,7 +3290,7 @@ semver@^5.0.3, semver@^5.3.0:
version "5.4.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e"
set-blocking@^2.0.0, set-blocking@~2.0.0:
set-blocking@~2.0.0:
version "2.0.0"
resolved "http://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
... ... @@ -3542,6 +3422,10 @@ source-map@0.1.31:
dependencies:
amdefine ">=0.0.4"
"source-map@>= 0.1.2":
version "0.6.1"
resolved "http://npm.yoho.cn/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
source-map@^0.4.4:
version "0.4.4"
resolved "http://registry.npm.taobao.org/source-map/download/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b"
... ... @@ -3576,12 +3460,6 @@ sqlstring@2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/sqlstring/-/sqlstring-2.2.0.tgz#c3135c4ea8abcd7e7ee741a4966a891d86a4f191"
ssf@~0.10.1:
version "0.10.1"
resolved "https://registry.yarnpkg.com/ssf/-/ssf-0.10.1.tgz#f23d82b63792ef56089089c1cd0c848e911cdba6"
dependencies:
frac "~1.1.0"
ssf@~0.8.1:
version "0.8.2"
resolved "http://registry.npm.taobao.org/ssf/download/ssf-0.8.2.tgz#b9d4dc6a1c1bcf76f8abfa96d7d7656fb2abecd6"
... ... @@ -3619,6 +3497,12 @@ sshpk@^1.7.0:
jsbn "~0.1.0"
tweetnacl "~0.14.0"
static-eval@0.2.3:
version "0.2.3"
resolved "http://npm.yoho.cn/static-eval/-/static-eval-0.2.3.tgz#023f17ac9fee426ea788c12ea39206dc175f8b2a"
dependencies:
escodegen "~0.0.24"
"statuses@>= 1.2.1 < 2", "statuses@>= 1.3.0 < 2", statuses@^1.2.0, statuses@^1.3.0:
version "1.3.0"
resolved "http://registry.npm.taobao.org/statuses/download/statuses-1.3.0.tgz#8e55758cb20e7682c1f4fce8dcab30bf01d1e07a"
... ... @@ -3644,7 +3528,7 @@ streamsearch@~0.1.2:
version "0.1.2"
resolved "http://registry.npm.taobao.org/streamsearch/download/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a"
string-width@^1.0.1, string-width@^1.0.2:
string-width@^1.0.1:
version "1.0.2"
resolved "http://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
dependencies:
... ... @@ -3693,12 +3577,6 @@ strip-ansi@^4.0.0:
dependencies:
ansi-regex "^3.0.0"
strip-bom@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e"
dependencies:
is-utf8 "^0.2.0"
strip-eof@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
... ... @@ -3884,6 +3762,14 @@ undefsafe@0.0.3:
version "0.0.3"
resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-0.0.3.tgz#ecca3a03e56b9af17385baac812ac83b994a962f"
underscore@1.1.x:
version "1.1.7"
resolved "http://npm.yoho.cn/underscore/-/underscore-1.1.7.tgz#40bab84bad19d230096e8d6ef628bff055d83db0"
underscore@1.7.0:
version "1.7.0"
resolved "http://npm.yoho.cn/underscore/-/underscore-1.7.0.tgz#6bbaf0877500d36be34ecaa584e0db9fef035209"
underscore@~1.4.4:
version "1.4.4"
resolved "http://registry.npm.taobao.org/underscore/download/underscore-1.4.4.tgz#61a6a32010622afa07963bf325203cf12239d604"
... ... @@ -4006,20 +3892,12 @@ voc@:
version "0.5.0"
resolved "http://registry.npm.taobao.org/voc/download/voc-0.5.0.tgz#be6ca7c76e4a57d930cc80f6b31fbd80ca86045c"
voc@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/voc/-/voc-1.0.0.tgz#5465c0ce11d0881f7d8e36d8ca587043f33a25ae"
wcwidth@^1.0.0:
version "1.0.1"
resolved "http://registry.npm.taobao.org/wcwidth/download/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8"
dependencies:
defaults "^1.0.3"
which-module@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f"
which@1, which@~1.2.11:
version "1.2.11"
resolved "http://registry.npm.taobao.org/which/download/which-1.2.11.tgz#c8b2eeea6b8c1659fa7c1dd4fdaabe9533dc5e8b"
... ... @@ -4054,10 +3932,6 @@ window-size@0.1.0:
version "0.1.0"
resolved "http://registry.npm.taobao.org/window-size/download/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
window-size@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075"
wordwrap@0.0.2:
version "0.0.2"
resolved "http://registry.npm.taobao.org/wordwrap/download/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"
... ... @@ -4066,13 +3940,6 @@ wordwrap@~0.0.2:
version "0.0.3"
resolved "http://registry.npm.taobao.org/wordwrap/download/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
wrap-ansi@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
dependencies:
string-width "^1.0.1"
strip-ansi "^3.0.1"
wrappy@1, wrappy@~1.0.2:
version "1.0.2"
resolved "http://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
... ... @@ -4108,18 +3975,6 @@ xdg-basedir@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4"
xlsx@^0.11.5:
version "0.11.5"
resolved "https://registry.yarnpkg.com/xlsx/-/xlsx-0.11.5.tgz#8c66cd97140be072e3dd320d12baa099689ceb74"
dependencies:
adler-32 "~1.1.0"
cfb "~0.13.1"
codepage "~1.11.0"
commander "~2.11.0"
crc-32 "~1.1.1"
exit-on-epipe "~1.0.1"
ssf "~0.10.1"
xlsx@^0.8.0:
version "0.8.0"
resolved "http://registry.npm.taobao.org/xlsx/download/xlsx-0.8.0.tgz#253ca61c9e1e14aa4b905dece4ce4757ace99d26"
... ... @@ -4140,40 +3995,10 @@ xmlhttprequest-ssl@1.5.1:
version "4.0.1"
resolved "http://registry.npm.taobao.org/xtend/download/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
y18n@^3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41"
yallist@^2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
yargs-parser@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-3.2.0.tgz#5081355d19d9d0c8c5d81ada908cb4e6d186664f"
dependencies:
camelcase "^3.0.0"
lodash.assign "^4.1.0"
yargs@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-5.0.0.tgz#3355144977d05757dbb86d6e38ec056123b3a66e"
dependencies:
cliui "^3.2.0"
decamelize "^1.1.1"
get-caller-file "^1.0.1"
lodash.assign "^4.2.0"
os-locale "^1.4.0"
read-pkg-up "^1.0.1"
require-directory "^2.1.1"
require-main-filename "^1.0.1"
set-blocking "^2.0.0"
string-width "^1.0.2"
which-module "^1.0.0"
window-size "^0.2.0"
y18n "^3.2.1"
yargs-parser "^3.2.0"
yargs@~3.10.0:
version "3.10.0"
resolved "http://registry.npm.taobao.org/yargs/download/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"
... ...