Authored by 毕凯

Merge branch 'feature/mysql' into 'feature/docker'

Feature/mysql



See merge request !1
phantomjs_cdnurl=http://npm.taobao.org/mirrors/phantomjs
registry=http://npm.yoho.cn
... ...
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
const config = require('./common/config');
const logger = require('yoho-node-lib/lib/logger').init(config);
const crypto = require('yoho-node-lib/lib/crypto');
global.yoho = {
logger,
config
config,
crypto
};
app.use(bodyParser.text({limit: '1024kb'}));
const middleware = require('./middleware');
app.get('/', (req, res) => {
... ... @@ -23,6 +29,8 @@ app.use('/node/status.html', (req, res) => {
return res.status(204).end();
});
app.post('/write', middleware.serverApm);
app.use('*', (req, res) => {
res.statusCode = 404;
res.send();
... ...
... ... @@ -39,36 +39,79 @@ module.exports = {
sourceMap: {
domain: 'http://static-ci.yoho.cn'
},
report: {
reportApi: {
host: 'influxd.yoho.cn',
db: 'web-apm',
measurement: 'api-duration',
measurement: 'api-info',
duration: 2000,
records: 1
},
reportRoute: {
host: 'influxd.yoho.cn',
db: 'web-apm',
measurement: 'route-info',
duration: 2000,
records: 1
},
mysql: {
host: '192.168.102.168',
port: '3306',
db: 'webapm',
userName: 'root',
password: 'root'
},
table: {
slow: 'slow_duration',
error: 'error_report'
},
slowRoute: {
min: 1000,
max: 10 * 1000
}
};
if (isProduction) {
Object.assign(module.exports, {
report: {
reportApi: {
host: '10.66.0.139',
port: 8086,
db: 'web-apm',
measurement: 'api-duration',
measurement: 'api-info',
duration: 2000,
records: 10
},
reportRoute: {
host: '10.66.0.139',
db: '8086',
measurement: 'route-info',
duration: 2000,
records: 10
},
sourceMap: {
domain: 'http://10.66.101.9:6006'
},
mysql: {
host: '10.66.0.139',
port: '3306',
db: 'webapm',
userName: 'root',
password: 'yB877Jy7tV6juIYk'
}
});
}
if (isTest) {
Object.assign(module.exports, {
report: {
reportApi: {
host: 'influxdblog.web.yohoops.org',
db: 'web-apm',
measurement: 'api-info',
duration: 2000,
records: 10
},
reportRoute: {
host: 'influxdblog.web.yohoops.org',
db: 'web-apm',
measurement: 'api-duration',
measurement: 'route-info',
duration: 2000,
records: 10
},
... ...
const qs = require('querystring');
const crypto = global.yoho.crypto;
const logger = global.yoho.logger;
class Message {
constructor(measurement, tags, fields, time) {
this.measurement = measurement;
this.tags = tags;
this.fields = fields;
this.time = time;
}
}
const opt = {
decodeURIComponent: function(str) {
let result = decodeURIComponent(str);
if (result[0] === '"') {
result = String(result);
}
return result;
}
};
function parseMessage(line) {
let measurement = line.split(',', 1)[0];
let body = line.substring(measurement.length + 1);
let tokens = body.split(' ');
let [tags, fields, time] = [qs.parse(tokens[0], ',', '=', opt), qs.parse(tokens[1], ',', '=', opt), tokens[2]];
return new Message(measurement, tags, fields, time);
}
function parse(data) {
data = data.replace(/\"([^\"]*)\"/g, (match) => {
return encodeURIComponent(match);
});
let lines = (data || '').split('\n');
let messages = lines.map(parseMessage);
return messages;
}
module.exports = {
parse
};
... ...
const knex = require('knex');
const config = global.yoho.config;
function init() {
return knex({
client: 'mysql',
connection: {
host: config.mysql.host,
port: config.mysql.port,
user: config.mysql.userName,
password: config.mysql.password,
database: config.mysql.db
}
});
}
module.exports = init();
\ No newline at end of file
... ...
const client = require('./mysql-client');
const log = require('debug')('mysql');
class MySqlSender {
constructor(table, duration = 2000) {
this.table = table;
this.batchMessages = [];
setInterval(() => {
this._send();
}, duration);
}
addMessage(msg) {
if (msg) {
this.batchMessages.push(msg);
}
}
_send() {
const len = this.batchMessages.length;
if (len < 1) {
log('batchMessage is empty');
return;
}
const bulk = this.batchMessages.splice(0, len);
for (let i of bulk) {
log('insert %0', i);
client(this.table).insert(i).catch((err) => {
console.log(err);
});
}
}
}
module.exports = MySqlSender;
\ No newline at end of file
... ...
const queryParse = require('../lib/query-parse');
const sourceMapParse = require('../lib/sourcemap-parse');
const Sender = require('influx-batch-sender');
const MysqlSender = require('../lib/mysql-sender');
const _ = require('lodash');
const logger = global.yoho.logger;
const config = global.yoho.config;
const msg2row = require('./msg2row');
const durationType = {
dcl: 'DOMContentLoaded',
ld: 'load',
dcl: 'domcontentload',
ld: 'domreadyload',
fs: 'firstscreen'
};
const influxSender = new Sender(config.report);
const routeInfluxSender = new Sender(config.reportRoute);
const slowRouterSender = new MysqlSender(config.table.slow);
const errorRouterSender = new MysqlSender(config.table.error);
module.exports = (req, res, next) => {
if (!req.query.l) {
... ... @@ -28,9 +33,10 @@ module.exports = (req, res, next) => {
return res.send();
}
report.forEach(item => {
if (item.pt && item.pt.indexOf('openby:yohobuy')) {
if (item.pt && item.pt.indexOf('openby:yohobuy') >= 0) {
item.pt = item.pt.substring(0, item.pt.indexOf('openby:yohobuy'));
}
if (item.tp === 'err') {
let data = {
tags: {
... ... @@ -39,7 +45,8 @@ module.exports = (req, res, next) => {
uid: item.u,
udid: item.ud,
route: item.pt
}
},
time: new Date().getTime() * 1000000
};
sourceMapParse.parse({
... ... @@ -63,7 +70,7 @@ module.exports = (req, res, next) => {
column: _.parseInt(originError.column || 0),
};
}
influxSender.addMessage(_.merge(data, {
_.merge(data, {
measurement: 'error-report',
tags: {
type: 'client'
... ... @@ -73,35 +80,52 @@ module.exports = (req, res, next) => {
useragent: req.get('user-agent'),
stack: item.st ? item.st.replace(/"/g, '') : ''
}, fields)
}));
});
errorRouterSender.addMessage(msg2row.errorRouter(data));
});
} else {
let data = {
tags: {
app
app,
route: item.pt
},
fields: {
reqID: item.rid,
uid: item.u,
udid: item.ud,
route: item.pt
}
udid: item.ud
},
time: new Date().getTime() * 1000000
};
if (durationType[item.tp]) {
const duration = _.parseInt(item.t);
if (duration < 1000 * 60 * 10) {
influxSender.addMessage(_.merge(data, {
measurement: 'web-client-duration',
tags: {
type: durationType[item.tp]
},
fields: {
duration: duration,
useragent: req.get('user-agent')
}
}));
const duration = _.parseInt(item.t);
if (duration < 1000 * 60 * 10) {
_.merge(data, {
measurement: 'route-info',
tags: {
type: durationType[item.tp],
},
fields: {
duration: duration,
useragent: req.get('user-agent')
}
});
routeInfluxSender.addMessage({
measurement: 'route-info',
tags: {
app: item.app,
host: item.hostname,
route: item.path
},
field: {
duration: item.duration
}
});
if (duration > config.slowRoute.min || duration < config.slowRoute.max) {
slowRouterSender.addMessage(msg2row.slowRouter(data));
}
}
}
... ...
const apm = require('./apm');
const serverApm = require('./server-apm');
module.exports = {
apm
apm,
serverApm
};
... ...
const _ = require('lodash');
function slowRouter(m) {
return {
app: _.get(m, 'tags.app', ''),
type: _.get(m, 'tags.type', ''),
hostname: _.get(m, 'tags.hostname', ''),
preqid: _.get(m, 'fields.preqid', ''),
reqid: _.get(m, 'fields.reqID', ''),
uid: _.get(m, 'fields.uid', ''),
udid: _.get(m, 'fields.udid', ''),
api: _.get(m, 'tags.api', ''),
route: _.get(m, 'tags.route', ''),
duration: _.get(m, 'fields.duration', ''),
create_time: _.get(m, 'time') / 1000000
};
}
function errorRouter(m) {
return {
app: _.get(m, 'tags.app', ''),
type: _.get(m, 'tags.type', ''),
hostname: _.get(m, 'tags.hostname', ''),
preqid: _.get(m, 'tags.preqid', ''),
reqid: _.get(m, 'tags.reqID', ''),
uid: _.get(m, 'tags.uid', ''),
route: _.get(m, 'tags.route', ''),
udid: _.get(m, 'tags.udid', ''),
code: _.get(m, 'tags.code', ''),
line: _.get(m, 'fields.line', ''),
column: _.get(m, 'fields.column', ''),
script: _.get(m, 'fields.script', ''),
message: _.get(m, 'fields.message', ''),
stack: _.get(m, 'fields.stack', ''),
create_time: _.get(m, 'time') / 1000000
};
}
module.exports = {
slowRouter,
errorRouter
};
... ...
const lineparse = require('../lib/line-parse');
const Sender = require('influx-batch-sender');
const MysqlSender = require('../lib/mysql-sender');
const config = require('../common/config');
const msg2row = require('./msg2row');
const errorSender = new MysqlSender(config.table.error);
const slowRouterSender = new MysqlSender(config.table.slow);
const influxSender = new Sender(config.reportRoute);
const server = {
async handle(data) {
let msgs = lineparse.parse(data);
for (let m of msgs) {
if (m.measurement === 'web-server-duration') {
let duration = parseInt(m.fields.duration);
if (duration > config.slowRoute.min || duration < config.slowRoute.max) {
slowRouterSender.addMessage(msg2row.slowRouter(m));
}
influxSender.addMessage({
measurement: 'route-info',
tags: {
app: m.tags.app,
hostname: m.tags.hostname,
route: m.tags.route
},
field: {
duration: m.duration
}
});
} else if (m.measurement === 'error-report') {
errorSender.addMessage(msg2row.errorRouter(m));
}
}
}
};
module.exports = function(req, res, next) {
let data = req.body || '';
server.handle(data).then(() => {
res.json();
}).catch(next);
};
... ...
This diff could not be displayed because it is too large.
... ... @@ -13,14 +13,18 @@
"author": "",
"license": "ISC",
"dependencies": {
"body-parser": "^1.18.2",
"debug": "^3.1.0",
"express": "^4.15.4",
"influx-batch-sender": "^0.1.3",
"influx-batch-sender": "^0.1.5",
"knex": "^0.14.1",
"lodash": "^4.17.4",
"lru-cache": "^4.1.1",
"mysql": "^2.15.0",
"request-promise": "^4.2.1",
"source-map": "^0.5.7",
"url": "^0.11.0",
"yoho-node-lib": "^0.4.2"
"yoho-node-lib": "^0.5.24"
},
"devDependencies": {
"babel-core": "^6.26.0",
... ...
... ... @@ -135,10 +135,18 @@ arr-flatten@^1.0.1:
version "1.1.0"
resolved "http://npm.yoho.cn/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
array-each@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/array-each/-/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f"
array-flatten@1.1.1:
version "1.1.1"
resolved "http://npm.yoho.cn/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
array-slice@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-1.0.0.tgz#e73034f00dcc1f40876008fd20feae77bd4b7c2f"
array-union@^1.0.1:
version "1.0.2"
resolved "http://npm.yoho.cn/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
... ... @@ -632,7 +640,7 @@ babel-register@^6.26.0:
mkdirp "^0.5.1"
source-map-support "^0.4.15"
babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0:
babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.23.0, babel-runtime@^6.26.0:
version "6.26.0"
resolved "http://npm.yoho.cn/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
dependencies:
... ... @@ -729,6 +737,10 @@ big.js@^3.1.3:
version "3.2.0"
resolved "http://npm.yoho.cn/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e"
bignumber.js@4.0.4:
version "4.0.4"
resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-4.0.4.tgz#7c40f5abcd2d6623ab7b99682ee7db81b11889a4"
binary-extensions@^1.0.0:
version "1.10.0"
resolved "http://npm.yoho.cn/binary-extensions/-/binary-extensions-1.10.0.tgz#9aeb9a6c5e88638aad171e167f5900abe24835d0"
... ... @@ -739,6 +751,10 @@ block-stream@*:
dependencies:
inherits "~2.0.0"
bluebird@^3.4.6:
version "3.5.1"
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9"
bluebird@^3.5.0:
version "3.5.0"
resolved "http://npm.yoho.cn/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c"
... ... @@ -747,6 +763,21 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0:
version "4.11.8"
resolved "http://npm.yoho.cn/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f"
body-parser@^1.18.2:
version "1.18.2"
resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454"
dependencies:
bytes "3.0.0"
content-type "~1.0.4"
debug "2.6.9"
depd "~1.1.1"
http-errors "~1.6.2"
iconv-lite "0.4.19"
on-finished "~2.3.0"
qs "6.5.1"
raw-body "2.3.2"
type-is "~1.6.15"
boom@2.x.x:
version "2.10.1"
resolved "http://npm.yoho.cn/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f"
... ... @@ -856,6 +887,10 @@ builtin-status-codes@^3.0.0:
version "3.0.0"
resolved "http://npm.yoho.cn/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
bytes@3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
caller-path@^0.1.0:
version "0.1.0"
resolved "http://npm.yoho.cn/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f"
... ... @@ -889,6 +924,14 @@ center-align@^0.1.1:
align-text "^0.1.3"
lazy-cache "^1.0.3"
chalk@2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba"
dependencies:
ansi-styles "^3.1.0"
escape-string-regexp "^1.0.5"
supports-color "^4.0.0"
chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3:
version "1.1.3"
resolved "http://npm.yoho.cn/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
... ... @@ -995,6 +1038,10 @@ combined-stream@^1.0.5, combined-stream@~1.0.5:
dependencies:
delayed-stream "~1.0.0"
commander@^2.2.0:
version "2.11.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563"
commondir@^1.0.1:
version "1.0.1"
resolved "http://npm.yoho.cn/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
... ... @@ -1044,7 +1091,7 @@ content-disposition@0.5.2:
version "0.5.2"
resolved "http://npm.yoho.cn/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4"
content-type@~1.0.2:
content-type@~1.0.2, content-type@~1.0.4:
version "1.0.4"
resolved "http://npm.yoho.cn/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
... ... @@ -1164,6 +1211,18 @@ debug@2.6.8, debug@^2.2.0, debug@^2.6.8:
dependencies:
ms "2.0.0"
debug@2.6.9:
version "2.6.9"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
dependencies:
ms "2.0.0"
debug@3.1.0, debug@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
dependencies:
ms "2.0.0"
debug@^3.0.1:
version "3.0.1"
resolved "http://npm.yoho.cn/debug/-/debug-3.0.1.tgz#0564c612b521dc92d9f2988f0549e34f9c98db64"
... ... @@ -1232,6 +1291,12 @@ destroy@~1.0.4:
version "1.0.4"
resolved "http://npm.yoho.cn/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
detect-file@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-0.1.0.tgz#4935dedfd9488648e006b0129566e9386711ea63"
dependencies:
fs-exists-sync "^0.1.0"
detect-indent@^4.0.0:
version "4.0.0"
resolved "http://npm.yoho.cn/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208"
... ... @@ -1595,6 +1660,18 @@ expand-range@^1.8.1:
dependencies:
fill-range "^2.1.0"
expand-tilde@^1.2.2:
version "1.2.2"
resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-1.2.2.tgz#0b81eba897e5a3d31d1c3d102f8f01441e559449"
dependencies:
os-homedir "^1.0.1"
expand-tilde@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502"
dependencies:
homedir-polyfill "^1.0.1"
express@^4.15.4:
version "4.15.4"
resolved "http://npm.yoho.cn/express/-/express-4.15.4.tgz#032e2253489cf8fce02666beca3d11ed7a2daed1"
... ... @@ -1628,7 +1705,7 @@ express@^4.15.4:
utils-merge "1.0.0"
vary "~1.1.1"
extend@~3.0.0:
extend@^3.0.0, extend@~3.0.0:
version "3.0.1"
resolved "http://npm.yoho.cn/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
... ... @@ -1715,6 +1792,29 @@ find-up@^2.0.0, find-up@^2.1.0:
dependencies:
locate-path "^2.0.0"
findup-sync@^0.4.2:
version "0.4.3"
resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.4.3.tgz#40043929e7bc60adf0b7f4827c4c6e75a0deca12"
dependencies:
detect-file "^0.1.0"
is-glob "^2.0.1"
micromatch "^2.3.7"
resolve-dir "^0.1.0"
fined@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/fined/-/fined-1.1.0.tgz#b37dc844b76a2f5e7081e884f7c0ae344f153476"
dependencies:
expand-tilde "^2.0.2"
is-plain-object "^2.0.3"
object.defaults "^1.1.0"
object.pick "^1.2.0"
parse-filepath "^1.0.1"
flagged-respawn@^0.3.2:
version "0.3.2"
resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-0.3.2.tgz#ff191eddcd7088a675b2610fffc976be9b8074b5"
flat-cache@^1.2.1:
version "1.2.2"
resolved "http://npm.yoho.cn/flat-cache/-/flat-cache-1.2.2.tgz#fa86714e72c21db88601761ecf2f555d1abc6b96"
... ... @@ -1740,6 +1840,12 @@ for-own@^0.1.4:
dependencies:
for-in "^1.0.1"
for-own@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b"
dependencies:
for-in "^1.0.1"
foreach@^2.0.5:
version "2.0.5"
resolved "http://npm.yoho.cn/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99"
... ... @@ -1772,6 +1878,10 @@ from@~0:
version "0.1.7"
resolved "http://npm.yoho.cn/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe"
fs-exists-sync@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add"
fs.realpath@^1.0.0:
version "1.0.0"
resolved "http://npm.yoho.cn/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
... ... @@ -1821,6 +1931,10 @@ gauge@~2.7.3:
strip-ansi "^3.0.1"
wide-align "^1.1.0"
generic-pool@^3.1.7:
version "3.2.0"
resolved "https://registry.yarnpkg.com/generic-pool/-/generic-pool-3.2.0.tgz#c1d485ecbd6f18c0513d4741d098a6715eaeeca8"
get-caller-file@^1.0.1:
version "1.0.2"
resolved "http://npm.yoho.cn/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5"
... ... @@ -1859,6 +1973,22 @@ glob@^7.0.3, glob@^7.0.5, glob@^7.1.2, glob@~7.1.2:
once "^1.3.0"
path-is-absolute "^1.0.0"
global-modules@^0.2.3:
version "0.2.3"
resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-0.2.3.tgz#ea5a3bed42c6d6ce995a4f8a1269b5dae223828d"
dependencies:
global-prefix "^0.1.4"
is-windows "^0.2.0"
global-prefix@^0.1.4:
version "0.1.5"
resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-0.1.5.tgz#8d3bc6b8da3ca8112a160d8d496ff0462bfef78f"
dependencies:
homedir-polyfill "^1.0.0"
ini "^1.3.4"
is-windows "^0.2.0"
which "^1.2.12"
globals@^10.0.0:
version "10.1.0"
resolved "http://npm.yoho.cn/globals/-/globals-10.1.0.tgz#4425a1881be0d336b4a823a82a7be725d5dd987c"
... ... @@ -1994,6 +2124,12 @@ home-or-tmp@^2.0.0:
os-homedir "^1.0.0"
os-tmpdir "^1.0.1"
homedir-polyfill@^1.0.0, homedir-polyfill@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc"
dependencies:
parse-passwd "^1.0.0"
hosted-git-info@^2.1.4:
version "2.5.0"
resolved "http://npm.yoho.cn/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c"
... ... @@ -2008,7 +2144,7 @@ htmlparser2@^3.8.2:
entities "1.0"
readable-stream "1.1"
http-errors@~1.6.2:
http-errors@1.6.2, http-errors@~1.6.2:
version "1.6.2"
resolved "http://npm.yoho.cn/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736"
dependencies:
... ... @@ -2029,7 +2165,7 @@ https-browserify@0.0.1:
version "0.0.1"
resolved "http://npm.yoho.cn/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82"
iconv-lite@^0.4.17:
iconv-lite@0.4.19, iconv-lite@^0.4.17:
version "0.4.19"
resolved "http://npm.yoho.cn/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
... ... @@ -2086,6 +2222,10 @@ inherits@2.0.1:
version "2.0.1"
resolved "http://npm.yoho.cn/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
ini@^1.3.4:
version "1.3.5"
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
ini@~1.3.0:
version "1.3.4"
resolved "http://npm.yoho.cn/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e"
... ... @@ -2109,7 +2249,7 @@ inquirer@^3.0.6:
strip-ansi "^4.0.0"
through "^2.3.6"
interpret@^1.0.0:
interpret@^1.0.0, interpret@^1.0.4:
version "1.0.4"
resolved "http://npm.yoho.cn/interpret/-/interpret-1.0.4.tgz#820cdd588b868ffb191a809506d6c9c8f212b1b0"
... ... @@ -2127,6 +2267,13 @@ ipaddr.js@1.4.0:
version "1.4.0"
resolved "http://npm.yoho.cn/ipaddr.js/-/ipaddr.js-1.4.0.tgz#296aca878a821816e5b85d0a285a99bcff4582f0"
is-absolute@^0.2.3:
version "0.2.6"
resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-0.2.6.tgz#20de69f3db942ef2d87b9c2da36f172235b1b5eb"
dependencies:
is-relative "^0.2.1"
is-windows "^0.2.0"
is-arrayish@^0.2.1:
version "0.2.1"
resolved "http://npm.yoho.cn/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
... ... @@ -2235,6 +2382,12 @@ is-path-inside@^1.0.0:
dependencies:
path-is-inside "^1.0.1"
is-plain-object@^2.0.3:
version "2.0.4"
resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
dependencies:
isobject "^3.0.1"
is-posix-bracket@^0.1.0:
version "0.1.1"
resolved "http://npm.yoho.cn/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4"
... ... @@ -2257,6 +2410,12 @@ is-regex@^1.0.4:
dependencies:
has "^1.0.1"
is-relative@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-0.2.1.tgz#d27f4c7d516d175fb610db84bbeef23c3bc97aa5"
dependencies:
is-unc-path "^0.1.1"
is-resolvable@^1.0.0:
version "1.0.0"
resolved "http://npm.yoho.cn/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62"
... ... @@ -2279,6 +2438,16 @@ is-typedarray@~1.0.0:
version "1.0.0"
resolved "http://npm.yoho.cn/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
is-unc-path@^0.1.1:
version "0.1.2"
resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-0.1.2.tgz#6ab053a72573c10250ff416a3814c35178af39b9"
dependencies:
unc-path-regex "^0.1.0"
is-windows@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c"
isarray@0.0.1:
version "0.0.1"
resolved "http://npm.yoho.cn/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
... ... @@ -2297,6 +2466,10 @@ isobject@^2.0.0:
dependencies:
isarray "1.0.0"
isobject@^3.0.0, isobject@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
isstream@0.1.x, isstream@~0.1.2:
version "0.1.2"
resolved "http://npm.yoho.cn/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
... ... @@ -2385,6 +2558,29 @@ kind-of@^4.0.0:
dependencies:
is-buffer "^1.1.5"
knex@^0.14.1:
version "0.14.1"
resolved "https://registry.yarnpkg.com/knex/-/knex-0.14.1.tgz#ba4ae5afc2824a43b392fbbc8f8a7753e356d808"
dependencies:
babel-runtime "^6.23.0"
bluebird "^3.4.6"
chalk "2.3.0"
commander "^2.2.0"
debug "3.1.0"
generic-pool "^3.1.7"
inherits "~2.0.1"
interpret "^1.0.4"
liftoff "2.3.0"
lodash "^4.6.0"
minimist "1.2.0"
mkdirp "^0.5.0"
pg-connection-string "2.0.0"
readable-stream "2.3.3"
safe-buffer "^5.0.1"
tildify "1.2.0"
uuid "^3.0.0"
v8flags "^3.0.0"
latest-version@^3.0.0:
version "3.1.0"
resolved "http://npm.yoho.cn/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15"
... ... @@ -2408,6 +2604,20 @@ levn@^0.3.0, levn@~0.3.0:
prelude-ls "~1.1.2"
type-check "~0.3.2"
liftoff@2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-2.3.0.tgz#a98f2ff67183d8ba7cfaca10548bd7ff0550b385"
dependencies:
extend "^3.0.0"
findup-sync "^0.4.2"
fined "^1.0.1"
flagged-respawn "^0.3.2"
lodash.isplainobject "^4.0.4"
lodash.isstring "^4.0.1"
lodash.mapvalues "^4.4.0"
rechoir "^0.6.2"
resolve "^1.1.7"
load-json-file@^2.0.0:
version "2.0.0"
resolved "http://npm.yoho.cn/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8"
... ... @@ -2490,6 +2700,14 @@ lodash.isarray@^3.0.0:
version "3.0.4"
resolved "http://npm.yoho.cn/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55"
lodash.isplainobject@^4.0.4:
version "4.0.6"
resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb"
lodash.isstring@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451"
lodash.keys@^3.0.0:
version "3.1.2"
resolved "http://npm.yoho.cn/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a"
... ... @@ -2498,11 +2716,15 @@ lodash.keys@^3.0.0:
lodash.isarguments "^3.0.0"
lodash.isarray "^3.0.0"
lodash.mapvalues@^4.4.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz#1bafa5005de9dd6f4f26668c30ca37230cc9689c"
lodash.restparam@^3.0.0:
version "3.6.1"
resolved "http://npm.yoho.cn/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805"
lodash@^4.0.0, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0:
lodash@^4.0.0, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0, lodash@^4.6.0:
version "4.17.4"
resolved "http://npm.yoho.cn/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
... ... @@ -2533,6 +2755,10 @@ make-dir@^1.0.0:
dependencies:
pify "^2.3.0"
map-cache@^0.2.0:
version "0.2.2"
resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
map-stream@~0.1.0:
version "0.1.0"
resolved "http://npm.yoho.cn/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194"
... ... @@ -2584,7 +2810,7 @@ methods@~1.1.2:
version "1.1.2"
resolved "http://npm.yoho.cn/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
micromatch@^2.1.5:
micromatch@^2.1.5, micromatch@^2.3.7:
version "2.3.11"
resolved "http://npm.yoho.cn/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565"
dependencies:
... ... @@ -2645,11 +2871,11 @@ minimist@0.0.8, minimist@~0.0.1:
version "0.0.8"
resolved "http://npm.yoho.cn/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
minimist@^1.2.0, minimist@~1.2.0:
minimist@1.2.0, minimist@^1.2.0, minimist@~1.2.0:
version "1.2.0"
resolved "http://npm.yoho.cn/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
mkdirp@0.5.1, "mkdirp@>=0.5 0", mkdirp@^0.5.1, mkdirp@~0.5.0:
mkdirp@0.5.1, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0:
version "0.5.1"
resolved "http://npm.yoho.cn/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
dependencies:
... ... @@ -2667,6 +2893,15 @@ mute-stream@0.0.7:
version "0.0.7"
resolved "http://npm.yoho.cn/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
mysql@^2.15.0:
version "2.15.0"
resolved "https://registry.yarnpkg.com/mysql/-/mysql-2.15.0.tgz#ea16841156343e8f2e47fc8985ec41cdd9573b5c"
dependencies:
bignumber.js "4.0.4"
readable-stream "2.3.3"
safe-buffer "5.1.1"
sqlstring "2.3.0"
nan@^2.3.0:
version "2.7.0"
resolved "http://npm.yoho.cn/nan/-/nan-2.7.0.tgz#d95bf721ec877e08db276ed3fc6eb78f9083ad46"
... ... @@ -2800,6 +3035,15 @@ object-keys@^1.0.8:
version "1.0.11"
resolved "http://npm.yoho.cn/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d"
object.defaults@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/object.defaults/-/object.defaults-1.1.0.tgz#3a7f868334b407dea06da16d88d5cd29e435fecf"
dependencies:
array-each "^1.0.1"
array-slice "^1.0.0"
for-own "^1.0.0"
isobject "^3.0.0"
object.omit@^2.0.0:
version "2.0.1"
resolved "http://npm.yoho.cn/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa"
... ... @@ -2807,6 +3051,12 @@ object.omit@^2.0.0:
for-own "^0.1.4"
is-extendable "^0.1.1"
object.pick@^1.2.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
dependencies:
isobject "^3.0.1"
on-finished@~2.3.0:
version "2.3.0"
resolved "http://npm.yoho.cn/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
... ... @@ -2847,7 +3097,7 @@ os-browserify@^0.2.0:
version "0.2.1"
resolved "http://npm.yoho.cn/os-browserify/-/os-browserify-0.2.1.tgz#63fc4ccee5d2d7763d26bbf8601078e6c2e0044f"
os-homedir@^1.0.0:
os-homedir@^1.0.0, os-homedir@^1.0.1:
version "1.0.2"
resolved "http://npm.yoho.cn/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
... ... @@ -2907,6 +3157,14 @@ parse-asn1@^5.0.0:
evp_bytestokey "^1.0.0"
pbkdf2 "^3.0.3"
parse-filepath@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.1.tgz#159d6155d43904d16c10ef698911da1e91969b73"
dependencies:
is-absolute "^0.2.3"
map-cache "^0.2.0"
path-root "^0.1.1"
parse-glob@^3.0.4:
version "3.0.4"
resolved "http://npm.yoho.cn/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c"
... ... @@ -2922,6 +3180,10 @@ parse-json@^2.2.0:
dependencies:
error-ex "^1.2.0"
parse-passwd@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
parseurl@~1.3.1:
version "1.3.2"
resolved "http://npm.yoho.cn/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3"
... ... @@ -2950,6 +3212,16 @@ path-parse@^1.0.5:
version "1.0.5"
resolved "http://npm.yoho.cn/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1"
path-root-regex@^0.1.0:
version "0.1.2"
resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d"
path-root@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7"
dependencies:
path-root-regex "^0.1.0"
path-to-regexp@0.1.7:
version "0.1.7"
resolved "http://npm.yoho.cn/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
... ... @@ -2980,6 +3252,10 @@ performance-now@^0.2.0:
version "0.2.0"
resolved "http://npm.yoho.cn/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5"
pg-connection-string@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.0.0.tgz#3eefe5997e06d94821e4d502e42b6a1c73f8df82"
pify@^2.0.0, pify@^2.3.0:
version "2.3.0"
resolved "http://npm.yoho.cn/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
... ... @@ -3075,6 +3351,10 @@ qs@6.5.0:
version "6.5.0"
resolved "http://npm.yoho.cn/qs/-/qs-6.5.0.tgz#8d04954d364def3efc55b5a0793e1e2c8b1e6e49"
qs@6.5.1:
version "6.5.1"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"
qs@~6.4.0:
version "6.4.0"
resolved "http://npm.yoho.cn/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233"
... ... @@ -3104,6 +3384,15 @@ range-parser@~1.2.0:
version "1.2.0"
resolved "http://npm.yoho.cn/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e"
raw-body@2.3.2:
version "2.3.2"
resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89"
dependencies:
bytes "3.0.0"
http-errors "1.6.2"
iconv-lite "0.4.19"
unpipe "1.0.0"
rc@^1.0.1, rc@^1.1.6, rc@^1.1.7:
version "1.2.1"
resolved "http://npm.yoho.cn/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95"
... ... @@ -3137,7 +3426,7 @@ readable-stream@1.1:
isarray "0.0.1"
string_decoder "~0.10.x"
readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.2, readable-stream@^2.2.6:
readable-stream@2.3.3, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.2, readable-stream@^2.2.6:
version "2.3.3"
resolved "http://npm.yoho.cn/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c"
dependencies:
... ... @@ -3158,6 +3447,12 @@ readdirp@^2.0.0:
readable-stream "^2.0.2"
set-immediate-shim "^1.0.1"
rechoir@^0.6.2:
version "0.6.2"
resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"
dependencies:
resolve "^1.1.6"
regenerate@^1.2.1:
version "1.3.2"
resolved "http://npm.yoho.cn/regenerate/-/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260"
... ... @@ -3286,10 +3581,23 @@ require-uncached@^1.0.3:
caller-path "^0.1.0"
resolve-from "^1.0.0"
resolve-dir@^0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-0.1.1.tgz#b219259a5602fac5c5c496ad894a6e8cc430261e"
dependencies:
expand-tilde "^1.2.2"
global-modules "^0.2.3"
resolve-from@^1.0.0:
version "1.0.1"
resolved "http://npm.yoho.cn/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226"
resolve@^1.1.6, resolve@^1.1.7:
version "1.5.0"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.5.0.tgz#1f09acce796c9a762579f31b2c1cc4c3cddf9f36"
dependencies:
path-parse "^1.0.5"
resolve@~1.4.0:
version "1.4.0"
resolved "http://npm.yoho.cn/resolve/-/resolve-1.4.0.tgz#a75be01c53da25d934a98ebd0e4c4a7312f92a86"
... ... @@ -3352,7 +3660,7 @@ rx-lite@*, rx-lite@^4.0.8:
version "4.0.8"
resolved "http://npm.yoho.cn/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444"
safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.1"
resolved "http://npm.yoho.cn/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
... ... @@ -3491,6 +3799,10 @@ sprintf-js@~1.0.2:
version "1.0.3"
resolved "http://npm.yoho.cn/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
sqlstring@2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/sqlstring/-/sqlstring-2.3.0.tgz#525b8a4fd26d6f71aa61e822a6caf976d31ad2a8"
sshpk@^1.7.0:
version "1.13.1"
resolved "http://npm.yoho.cn/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3"
... ... @@ -3679,6 +3991,12 @@ through@2, through@^2.3.6, through@~2.3, through@~2.3.1, through@~2.3.4, through
version "2.3.8"
resolved "http://npm.yoho.cn/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
tildify@1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/tildify/-/tildify-1.2.0.tgz#dcec03f55dca9b7aa3e5b04f21817eb56e63588a"
dependencies:
os-homedir "^1.0.0"
timed-out@^4.0.0:
version "4.0.1"
resolved "http://npm.yoho.cn/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f"
... ... @@ -3783,6 +4101,10 @@ uid-number@^0.0.6:
version "0.0.6"
resolved "http://npm.yoho.cn/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81"
unc-path-regex@^0.1.0:
version "0.1.2"
resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa"
undefsafe@0.0.3:
version "0.0.3"
resolved "http://npm.yoho.cn/undefsafe/-/undefsafe-0.0.3.tgz#ecca3a03e56b9af17385baac812ac83b994a962f"
... ... @@ -3793,7 +4115,7 @@ unique-string@^1.0.0:
dependencies:
crypto-random-string "^1.0.0"
unpipe@~1.0.0:
unpipe@1.0.0, unpipe@~1.0.0:
version "1.0.0"
resolved "http://npm.yoho.cn/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
... ... @@ -3845,6 +4167,12 @@ uuid@^3.0.0, uuid@^3.0.1:
version "3.1.0"
resolved "http://npm.yoho.cn/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04"
v8flags@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-3.0.1.tgz#dce8fc379c17d9f2c9e9ed78d89ce00052b1b76b"
dependencies:
homedir-polyfill "^1.0.1"
validate-npm-package-license@^3.0.1:
version "3.0.1"
resolved "http://npm.yoho.cn/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc"
... ... @@ -3922,7 +4250,7 @@ which-module@^2.0.0:
version "2.0.0"
resolved "http://npm.yoho.cn/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
which@^1.2.9:
which@^1.2.12, which@^1.2.9:
version "1.3.0"
resolved "http://npm.yoho.cn/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a"
dependencies:
... ...