diff --git a/.eslintrc b/.eslintrc
new file mode 100644
index 0000000..56e88f4
--- /dev/null
+++ b/.eslintrc
@@ -0,0 +1,58 @@
+{
+ "extends": ["eslint:recommended", "plugin:prettier/recommended"],
+ "plugins": ["prettier"],
+ "parserOptions": {
+ "ecmaVersion": 2017,
+ "sourceType": "module",
+ "ecmaFeatures": {
+ "experimentalObjectRestSpread": true
+ }
+ },
+ "env": {
+ "node": true,
+ "es6": true
+ },
+ "rules": {
+ "no-console": 0,
+ "block-scoped-var": 1,
+ "curly": 1,
+ "eqeqeq": 1,
+ "no-global-assign": 1,
+ "no-implicit-globals": 1,
+ "no-labels": 1,
+ "no-multi-str": 1,
+ "comma-spacing": 1,
+ "comma-style": 1,
+ "func-call-spacing": 1,
+ "keyword-spacing": 1,
+ "linebreak-style": 1,
+ "lines-around-comment": 1,
+ "no-multiple-empty-lines": 1,
+ "space-infix-ops": 1,
+ "arrow-spacing": 1,
+ "no-var": 1,
+ "prefer-const": 1,
+ "no-unsafe-negation": 1,
+ "array-callback-return": 1,
+ "dot-notation": 1,
+ "no-eval": 1,
+ "no-extend-native": 1,
+ "no-extra-label": 1,
+ "semi": 1,
+ "space-before-blocks": 1,
+ "space-in-parens": 1,
+ "space-unary-ops": 1,
+ "spaced-comment": 1,
+ "arrow-body-style": 1,
+ "arrow-parens": 1,
+ "no-restricted-imports": 1,
+ "no-duplicate-imports": 1,
+ "no-useless-computed-key": 1,
+ "no-useless-rename": 1,
+ "rest-spread-spacing": 1,
+ "no-trailing-spaces": 1,
+ "quotes": [1, "single"],
+ "no-control-regex": 0,
+ "prettier/prettier": 0
+ }
+}
diff --git a/.gitignore b/.gitignore
index 81f35fc..aefa2a1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
node_modules
-logs/DPlayer.log*
\ No newline at end of file
+error.log
+combined.log
\ No newline at end of file
diff --git a/README.md b/README.md
index 02497e3..c1db582 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# DPlayer backend
+# DPlayer node
> Node.js backend for [DPlayer](https://github.com/DIYgod/DPlayer)
@@ -42,30 +42,9 @@ docker-compose stop
[Telegram Group](https://t.me/adplayer)
-[QQ Group: 415835947](https://shang.qq.com/wpa/qunwpa?idkey=bf22213ae0028a82e5adf3f286dfd4f01e0997dc9f1dcd8e831a0a85e799be17)
+## Author
-## Related Projects
+**DPlayer-node** © [DIYgod](https://github.com/DIYgod), Released under the [MIT](./LICENSE) License.
+Authored and maintained by DIYgod with help from contributors ([list](https://github.com/MoePlayer/DPlayer-node/contributors)).
-- [DPlayer](https://github.com/DIYgod/DPlayer)
-
-- [DPlayer-data(weekly backup for api.prprpr.me/dplayer)](https://github.com/DIYgod/DPlayer-data)
-
-- [DPlayer-for-typecho](https://github.com/volio/DPlayer-for-typecho)
-
-- [Hexo-tag-dplayer](https://github.com/NextMoe/hexo-tag-dplayer)
-
-- [DPlayer_for_Z-BlogPHP](https://github.com/fghrsh/DPlayer_for_Z-BlogPHP)
-
-- [纸飞机视频区插件(DPlayer for Discuz!)](https://coding.net/u/Click_04/p/video/git)
-
-- [dplayer_py_backend](https://github.com/dixyes/dplayer_py_backend)
-
-- [dplayer_lua_backend](https://github.com/dixyes/dplayer_lua_backend)
-
-- [DPlayer for WordPress](https://github.com/BlueCocoa/DPlayer-WordPress)
-
-- [Vue-DPlayer](https://github.com/sinchang/vue-dplayer)
-
-## LICENSE
-
-[The Star And Thank Author License (SATA)](https://github.com/DIYgod/DPlayer/blob/master/LICENSE)
\ No newline at end of file
+> Blog [@DIYgod](https://diygod.me) · GitHub [@DIYgod](https://github.com/DIYgod) · Twitter [@DIYgod](https://twitter.com/DIYgod) · Telegram Channel [@awesomeDIYgod](https://t.me/awesomeDIYgod)
diff --git a/blacklist b/blacklist
deleted file mode 100644
index 0ff919a..0000000
--- a/blacklist
+++ /dev/null
@@ -1,7 +0,0 @@
-Can be username and IP and referer
-username
-0.0.0.0
-175.180.108.110
-219.133.201.230
-llj22.com
-190fl.cc
\ No newline at end of file
diff --git a/config.js b/config.js
new file mode 100644
index 0000000..eb548ba
--- /dev/null
+++ b/config.js
@@ -0,0 +1,15 @@
+module.exports = {
+ port: process.env.PORT || 1207,
+ mongodb: {
+ username: process.env.MONGO_USERNAME || null,
+ password: process.env.MONGO_PASSWORD || null,
+ host: process.env.MONGO_HOST || '127.0.0.1',
+ port: process.env.MONGO_PORT || '27017',
+ database: process.env.MONGO_DATABASE || 'danmaku',
+ },
+ redis: {
+ host: process.env.REDIS_HOST || '127.0.0.1',
+ port: process.env.REDIS_PORT || '6379',
+ password: process.env.REDIS_PASSWORD || null,
+ }
+};
diff --git a/docker-compose.yml b/docker-compose.yml
index 83818ec..083ca7e 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -22,11 +22,11 @@ services:
ports:
- 1207:1207
environment:
- REDIS_PORT_6379_TCP_ADDR: "redis"
- REDIS_PORT_6379_TCP_PORT: 6379
- MONGO_PORT_27017_TCP_ADDR: "mongo"
- MONGO_PORT_27017_TCP_PORT: 27017
- MONGO_INSTANCE_NAME: "danmaku"
+ REDIS_HOST: "redis"
+ REDIS_PORT: 6379
+ MONGO_HOST: "mongo"
+ MONGO_PORT: 27017
+ MONGO_DATABASE: "danmaku"
volumes:
- ~/dplayer/logs:/usr/src/app/logs
- ~/dplayer/pm2logs:/root/.pm2/logs
\ No newline at end of file
diff --git a/index.js b/index.js
index 693461d..6a9c4e4 100644
--- a/index.js
+++ b/index.js
@@ -1,18 +1,34 @@
-var express = require('express');
-var logger = require('./tools/logger');
-require('./tools/mongodb');
-
-logger.info(`🍻 DPlayer start! Cheers!`);
-
-var app = express();
-app.all('*', require('./routes/all'));
-app.get('/', require('./routes/get'));
-app.post('/', require('./routes/post'));
-// app.get('/list', require('./routes/list'));
-app.get('/bilibili', require('./routes/bilibili'));
-// app.get('/video/bilibili', require('./routes/video-bilibili'));
-
-app.get('/v2', require('./routes/v2/get'));
-app.post('/v2', require('./routes/v2/post'));
-app.get('/v2/bilibili', require('./routes/v2/bilibili'));
-app.listen(1207);
\ No newline at end of file
+const Koa = require('koa');
+const bodyParser = require('koa-bodyparser');
+
+const logger = require('./utils/logger');
+const config = require('./config');
+
+const mongodb = require('./utils/mongodb');
+const redis = require('./utils/redis');
+
+const onerror = require('./middleware/onerror');
+const header = require('./middleware/header.js');
+const accessControl = require('./middleware/access-control.js');
+
+const router = require('./router');
+
+process.on('uncaughtException', (e) => {
+ logger.error('uncaughtException: ' + e);
+});
+
+logger.info('🎉 DPlayer start! Cheers!');
+
+const app = new Koa();
+app.proxy = true;
+app.context.mongodb = mongodb;
+app.context.redis = redis;
+
+app.use(bodyParser());
+app.use(onerror);
+app.use(header);
+app.use(accessControl);
+app.use(router.routes()).use(router.allowedMethods());
+
+app.listen(config.port);
+logger.info('Listening Port ' + config.port);
\ No newline at end of file
diff --git a/middleware/access-control.js b/middleware/access-control.js
new file mode 100644
index 0000000..2333e51
--- /dev/null
+++ b/middleware/access-control.js
@@ -0,0 +1,21 @@
+const blacklist = (process.env.BLACKLIST && process.env.BLACKLIST.split(',')) || [];
+const whitelist = process.env.WHITELIST && process.env.WHITELIST.split(',');
+
+module.exports = async (ctx, next) => {
+ const ip = ctx.ips[0] || ctx.ip;
+ const referer = ctx.request.headers.referer;
+
+ const refererAllowed = (whitelist && whitelist.indexOf(referer) !== -1) || blacklist.indexOf(referer) === -1;
+ const ipAllowed = (whitelist && whitelist.indexOf(ip) !== -1) || blacklist.indexOf(ip) === -1;
+
+ if (refererAllowed && ipAllowed) {
+ await next();
+ } else {
+ ctx.response.status = 403;
+
+ ctx.body = JSON.stringify({
+ code: 1,
+ msg: `${!refererAllowed ? '该站点' : '你的 IP '}没有访问权限`,
+ });
+ }
+};
diff --git a/middleware/header.js b/middleware/header.js
new file mode 100644
index 0000000..5d7fc52
--- /dev/null
+++ b/middleware/header.js
@@ -0,0 +1,14 @@
+const logger = require('../utils/logger');
+const headers = {
+ 'Access-Control-Allow-Origin': '*',
+ 'Access-Control-Allow-Headers': 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild',
+ 'Access-Control-Allow-Methods': 'PUT, POST, GET, DELETE, OPTIONS',
+ 'Content-Type': 'application/json; charset=UTF-8',
+ 'Cache-Control': 'no-cache',
+};
+
+module.exports = async (ctx, next) => {
+ logger.info(`${ctx.url}, user IP: ${ctx.ips[0] || ctx.ip}`);
+ ctx.set(headers);
+ await next();
+};
diff --git a/middleware/onerror.js b/middleware/onerror.js
new file mode 100644
index 0000000..a5a9fb1
--- /dev/null
+++ b/middleware/onerror.js
@@ -0,0 +1,14 @@
+const logger = require('../utils/logger');
+
+module.exports = async (ctx, next) => {
+ try {
+ await next();
+ } catch (err) {
+ logger.error('Promise error: ' + (err instanceof Error ? err.stack : err));
+ ctx.set({
+ 'Content-Type': 'text/html; charset=UTF-8',
+ });
+ ctx.body = `DPlayer-node 发生了一些意外:
${err instanceof Error ? err.stack : err}
`;
+ ctx.status = 500;
+ }
+};
diff --git a/models/danmaku.js b/models/danmaku.js
deleted file mode 100644
index 6b0512b..0000000
--- a/models/danmaku.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var mongoose = require('../tools/mongodb');
-var danmakuSchema = new mongoose.Schema({
- player: {
- type: [String], index: true
- },
- author: String,
- time: Number,
- text: String,
- color: String,
- type: String,
- ip: String,
- referer: String
-});
-var danmaku = mongoose.model('dan', danmakuSchema);
-
-module.exports = danmaku;
\ No newline at end of file
diff --git a/package.json b/package.json
index e6b42c8..2189408 100644
--- a/package.json
+++ b/package.json
@@ -5,14 +5,18 @@
"main": "index.js",
"author": "DIYgod",
"license": "MIT",
- "devDependencies": {},
+ "devDependencies": {
+ "eslint": "5.0.1",
+ "eslint-config-prettier": "2.9.0",
+ "eslint-plugin-prettier": "2.6.1"
+ },
"dependencies": {
- "blueimp-md5": "2.10.0",
- "express": "4.16.2",
- "log4js": "2.4.1",
- "mongoose": "4.13.9",
- "node-fetch": "1.7.3",
+ "koa": "2.5.1",
+ "koa-bodyparser": "4.2.1",
+ "koa-router": "7.4.0",
+ "mongoose": "5.1.7",
"redis": "2.8.0",
+ "winston": "3.0.0",
"xml2js": "0.4.19"
}
}
diff --git a/router.js b/router.js
new file mode 100644
index 0000000..a080869
--- /dev/null
+++ b/router.js
@@ -0,0 +1,7 @@
+const Router = require('koa-router');
+const router = new Router();
+
+router.get('/', require('./routes/get'));
+router.post('/', require('./routes/post'));
+
+module.exports = router;
\ No newline at end of file
diff --git a/routes/all.js b/routes/all.js
deleted file mode 100644
index ad574da..0000000
--- a/routes/all.js
+++ /dev/null
@@ -1,23 +0,0 @@
-var logger = require('../tools/logger');
-var blank = require('../tools/blank');
-
-module.exports = function (req, res, next) {
-
- if (req.headers.referer && blank(req.headers.referer)) {
- logger.info(`Reject all form ${req.headers.referer} for black referer.`);
- res.send(`{"code": 6, "msg": "black referer"}`);
- return;
- }
-
- res.header('Access-Control-Allow-Origin', '*');
- res.header('Access-Control-Allow-Headers', 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild');
- res.header('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, OPTIONS');
- res.header('Cache-control', 'no-cache');
-
- if (req.method == 'OPTIONS') {
- res.send(200);
- }
- else {
- next();
- }
-};
\ No newline at end of file
diff --git a/routes/bilibili.js b/routes/bilibili.js
deleted file mode 100644
index 296290d..0000000
--- a/routes/bilibili.js
+++ /dev/null
@@ -1,134 +0,0 @@
-var url = require('url');
-var logger = require('../tools/logger');
-var redis = require('../tools/redis');
-var fetch = require('node-fetch');
-var parseString = require('xml2js').parseString;
-
-module.exports = function (req, res) {
- res.header('content-type', 'application/json; charset=utf-8');
-
- var ip = req.headers['x-forwarded-for'] ||
- req.connection.remoteAddress ||
- req.socket.remoteAddress ||
- req.connection.socket.remoteAddress;
-
- var query = url.parse(req.url,true).query;
- var aid = query.aid;
- var cid = query.cid;
-
- function addZero(str, length){
- return new Array(Math.max(length - str.length + 1, 0)).join("0") + str;
- }
-
- if (cid) {
- redis.client.get(`bilibilicid2dan${cid}`, function(err, reply) {
- if (reply) {
- logger.info(`Bilibili cid2dan ${cid} form redis, IP: ${ip}`);
- res.send(reply);
- }
- else {
- logger.info(`Bilibili cid2dan ${cid} form origin, IP: ${ip}`);
-
- var dan = {
- code: 1,
- danmaku: []
- };
-
- fetch(`http://comment.bilibili.com/${cid}.xml`).then(
- response => response.text()
- ).then((data) => {
- parseString(data, function (err, result) {
- var danOriginal = result.i.d;
- for (var i = 0; i < danOriginal.length; i++) {
- var info = danOriginal[i].$.p.split(',');
- var type = '';
- if (info[1] === '4') {
- type = 'bottom';
- }
- else if (info[1] === '5') {
- type = 'top';
- }
- else {
- type = 'right';
- }
- var danOne = {
- author: 'bilibili' + info[6],
- time: info[0],
- text: danOriginal[i]._,
- color: '#' + addZero(parseInt(info[3]).toString(16), 6),
- type: type
- };
- dan.danmaku.push(danOne);
- }
- var sendDan = JSON.stringify(dan);
- res.send(sendDan);
-
- redis.set(`bilibilicid2dan${cid}`, sendDan);
- });
- }
- ).catch(
- e => logger.error("Bilibilib Error: getting danmaku", e)
- );
- }
- });
- }
- else {
- redis.client.get(`bilibiliaid2dan${aid}`, function(err, reply) {
- if (reply) {
- logger.info(`Bilibili aid2dan ${aid} form redis, IP: ${ip}`);
- res.send(reply);
- }
- else {
- logger.info(`Bilibili aid2dan ${aid} form origin, IP: ${ip}`);
-
- var dan = {
- code: 1,
- danmaku: []
- };
-
- fetch(`http://www.bilibili.com/widget/getPageList?aid=${aid}`).then(
- response => response.json()
- ).then((data) => {
- fetch(`http://comment.bilibili.com/${data[0].cid}.xml`).then(
- response => response.text()
- ).then((data) => {
- parseString(data, function (err, result) {
- var danOriginal = result.i.d;
- for (var i = 0; i < danOriginal.length; i++) {
- var info = danOriginal[i].$.p.split(',');
- var type = '';
- if (info[1] === '4') {
- type = 'bottom';
- }
- else if (info[1] === '5') {
- type = 'top';
- }
- else {
- type = 'right';
- }
- var danOne = {
- author: 'bilibili' + info[6],
- time: info[0],
- text: danOriginal[i]._,
- color: '#' + addZero(parseInt(info[3]).toString(16), 6),
- type: type
- };
- dan.danmaku.push(danOne);
- }
- var sendDan = JSON.stringify(dan);
- res.send(sendDan);
-
- redis.set(`bilibiliaid2dan${aid}`, sendDan);
- });
- }
- ).catch(
- e => logger.error("Bilibilib Error: getting danmaku", e)
- );
- }
- ).catch(
- e => logger.error("Bilibilib Error: getting cid", e)
- );
- }
- });
- }
-};
\ No newline at end of file
diff --git a/routes/get.js b/routes/get.js
index 7b1160b..5c36128 100644
--- a/routes/get.js
+++ b/routes/get.js
@@ -1,43 +1,32 @@
-var url = require('url');
-var logger = require('../tools/logger');
-var danmaku = require('../models/danmaku');
-var redis = require('../tools/redis');
+function htmlEncode (str) {
+ return str.replace(/&/g, '&')
+ .replace(//g, '>')
+ .replace(/"/g, '"')
+ .replace(/'/g, ''')
+ .replace(/\//g, '/');
+}
-module.exports = function (req, res) {
- res.header('content-type', 'application/json; charset=utf-8');
+module.exports = async (ctx) => {
+ const { id, limit } = ctx.request.query;
- var ip = req.headers['x-forwarded-for'] ||
- req.connection.remoteAddress ||
- req.socket.remoteAddress ||
- req.connection.socket.remoteAddress;
-
- var query = url.parse(req.url,true).query;
- var id = query.id;
- var max = query.max;
-
- redis.client.get(`dplayer${id}`, function(err, reply) {
- if (reply) {
- logger.info(`DPlayer id ${id} form redis, IP: ${ip}`);
- res.send(reply);
+ let data = await ctx.redis.get(`danmaku${id}`);
+ if (data) {
+ data = JSON.parse(data);
+ if (limit) {
+ data = data.slice(-1 * parseInt(limit));
}
- else {
- logger.info(`DPlayer id ${id} form mongodb, IP: ${ip}`);
-
- danmaku.find({player: id}, function (err, data) {
- if (err) {
- logger.error(err);
- }
-
- var dan = {
- code: 1,
- danmaku: []
- };
- dan.danmaku = max ? data.slice(0, max) : data;
- var sendDan = JSON.stringify(dan);
- res.send(sendDan);
-
- redis.set(`dplayer${id}`, sendDan);
- })
+ ctx.response.set('X-Koa-Redis', 'true');
+ } else {
+ data = await ctx.mongodb.find({ id }) || [];
+ ctx.redis.set(`danmaku${id}`, JSON.stringify(data));
+ if (limit) {
+ data = data.slice(-1 * parseInt(limit));
}
+ ctx.response.set('X-Koa-Mongodb', 'true');
+ }
+ ctx.body = JSON.stringify({
+ code: 0,
+ data: data.map((item) => [item.time || 0, item.type || 0, item.color || 16777215, htmlEncode(item.author) || 'DPlayer', htmlEncode(item.text) || '']),
});
};
\ No newline at end of file
diff --git a/routes/list.js b/routes/list.js
deleted file mode 100644
index 1f4146e..0000000
--- a/routes/list.js
+++ /dev/null
@@ -1,17 +0,0 @@
-var url = require('url');
-var logger = require('../tools/logger');
-var danmaku = require('../models/danmaku');
-
-module.exports = function (req, res) {
- danmaku.distinct('player', function (err, data) {
- if (err) {
- logger.error(err);
- }
-
- var json = ``;
- for (var i = 0; i < data.length; i++) {
- json += data[i] + `
`;
- }
- res.send(json);
- })
-};
\ No newline at end of file
diff --git a/routes/post.js b/routes/post.js
index 643cac0..e2fd862 100644
--- a/routes/post.js
+++ b/routes/post.js
@@ -1,117 +1,32 @@
-var logger = require('../tools/logger');
-var danmaku = require('../models/danmaku');
-var redis = require('../tools/redis');
-var blank = require('../tools/blank');
-
-function htmlEncode(str) {
- return str.replace(/&/g, "&")
- .replace(//g, ">")
- .replace(/"/g, """)
- .replace(/'/g, "'")
- .replace(/\//g, "/");
-}
-
-var postIP = [];
-
-module.exports = function (req, res) {
- var body = '';
- var jsonStr = {};
- var ip = req.headers['x-forwarded-for'] ||
- req.connection.remoteAddress ||
- req.socket.remoteAddress ||
- req.connection.socket.remoteAddress;
-
- // check black ip
- if (blank(ip)) {
- logger.info(`Reject POST form ${ip} for black ip.`);
- res.send(`{"code": -1, "msg": "Rejected for black ip."}`);
- return;
- }
-
- // frequency limitation
- if (postIP.indexOf(ip) !== -1) {
- logger.info(`Reject POST form ${ip} for frequent operation.`);
- res.send(`{"code": -2, "msg": "Rejected for frequent operation."}`);
- return;
- }
- else {
- postIP.push(ip);
- setTimeout(function () {
- postIP.splice(0, 1);
- }, 1000);
- }
-
- req.on('data', dataListener);
- req.on('end', endListener);
-
- function dataListener (chunk) {
- body += chunk;
- }
- function endListener () {
- cleanListener();
- try {
- jsonStr = JSON.parse(body);
- } catch (err) {
- jsonStr = {};
- }
-
- // check data
- if (jsonStr.player === undefined
- || jsonStr.author === undefined
- || jsonStr.time === undefined
- || jsonStr.text === undefined
- || jsonStr.color === undefined
- || jsonStr.type === undefined
- || jsonStr.text.length >= 30) {
- logger.info(`Reject POST form ${ip} for illegal data: ${JSON.stringify(jsonStr)}`);
- res.send(`{"code": -3, "msg": "Rejected for illegal data"}`);
- return;
- }
-
- // check token: set it yourself
- function checkToken (token) {
- return true;
- }
- if (!checkToken(jsonStr.token)) {
- logger.info(`Rejected POST form ${ip} for illegal token: ${jsonStr.token}`);
- res.send(`{"code": -4, "msg": "Rejected for illegal token: ${jsonStr.token}"}`);
- return;
+const logger = require('../utils/logger');
+
+module.exports = async (ctx) => {
+ const body = ctx.request.body;
+
+ const dan = new ctx.mongodb({
+ id: body.id,
+ author: body.author,
+ time: body.time,
+ text: body.text,
+ color: body.color,
+ type: body.type,
+ ip: ctx.ips[0] || ctx.ip,
+ referer: ctx.headers.referer
+ });
+ dan.save((err, data) => {
+ if (err) {
+ logger.error(err);
+ ctx.body = JSON.stringify({
+ code: 1,
+ msg: 'Database error',
+ });
}
-
- // check black username
- if (blank(jsonStr.author)) {
- logger.info(`Reject POST form ${jsonStr.author} for black user.`);
- res.send(`{"code": -5, "msg": "Rejected for black user."}`);
- return;
+ else {
+ ctx.body = JSON.stringify({
+ code: 0,
+ data,
+ });
+ ctx.redis.del(`danmaku${data.id}`);
}
-
- logger.info(`POST form ${ip}, data: ${JSON.stringify(jsonStr)}`);
-
- var dan = new danmaku({
- player: htmlEncode(jsonStr.player),
- author: htmlEncode(jsonStr.author),
- time: jsonStr.time,
- text: htmlEncode(jsonStr.text),
- color: htmlEncode(jsonStr.color),
- type: htmlEncode(jsonStr.type),
- ip: ip,
- referer: req.headers.referer
- });
- dan.save(function (err, d) {
- if (err) {
- logger.error(err);
- res.send(`{"code": 0, "msg": "Error happens, please contact system administrator."}`);
- }
- else {
- res.send(`{"code": 1, "data": ${JSON.stringify(d)}}`);
- redis.client.del(`dplayer${htmlEncode(jsonStr.player)}`);
- }
- });
- }
-
- function cleanListener () {
- req.removeListener('data', dataListener);
- req.removeListener('end', endListener);
- }
+ });
};
\ No newline at end of file
diff --git a/routes/v2/bilibili.js b/routes/v2/bilibili.js
deleted file mode 100644
index 67c97c7..0000000
--- a/routes/v2/bilibili.js
+++ /dev/null
@@ -1,124 +0,0 @@
-var url = require('url');
-var logger = require('../../tools/logger');
-var redis = require('../../tools/redis');
-var fetch = require('node-fetch');
-var parseString = require('xml2js').parseString;
-
-module.exports = function (req, res) {
- res.header('content-type', 'application/json; charset=utf-8');
-
- var ip = req.headers['x-forwarded-for'] ||
- req.connection.remoteAddress ||
- req.socket.remoteAddress ||
- req.connection.socket.remoteAddress;
-
- var query = url.parse(req.url, true).query;
- var aid = query.aid;
- var cid = query.cid;
-
- function addZero (str, length) {
- return new Array(Math.max(length - str.length + 1, 0)).join("0") + str;
- }
-
- if (cid) {
- redis.client.get(`v2bilibilicid2dan${cid}`, function (err, reply) {
- if (reply) {
- logger.info(`v2: Bilibili cid2dan ${cid} form redis, IP: ${ip}`);
- res.send(reply);
- }
- else {
- logger.info(`v2: Bilibili cid2dan ${cid} form origin, IP: ${ip}`);
-
- var dan = {
- code: 0,
- version: 2,
- danmaku: []
- };
-
- fetch(`http://comment.bilibili.com/${cid}.xml`).then(
- response => response.text()
- ).then((data) => {
- parseString(data, function (err, result) {
- var danOriginal = result.i.d;
- for (var i = 0; i < danOriginal.length; i++) {
- var info = danOriginal[i].$.p.split(',');
- var type = '';
- if (info[1] === '4') {
- type = 2;
- }
- else if (info[1] === '5') {
- type = 1;
- }
- else {
- type = 0;
- }
- var danOne = [parseInt(info[0]), type, '#' + addZero(parseInt(info[3]).toString(16), 6), 'bilibili' + info[6], danOriginal[i]._];
- dan.danmaku.push(danOne);
- }
- var sendDan = JSON.stringify(dan);
- res.send(sendDan);
-
- redis.set(`v2bilibilicid2dan${cid}`, sendDan);
- });
- }
- ).catch(
- e => logger.error("Bilibilib Error: getting danmaku", e)
- );
- }
- });
- }
- else {
- redis.client.get(`v2bilibiliaid2dan${aid}`, function (err, reply) {
- if (reply) {
- logger.info(`v2: Bilibili aid2dan ${aid} form redis, IP: ${ip}`);
- res.send(reply);
- }
- else {
- logger.info(`v2: Bilibili aid2dan ${aid} form origin, IP: ${ip}`);
-
- var dan = {
- code: 0,
- version: 2,
- danmaku: []
- };
-
- fetch(`http://www.bilibili.com/widget/getPageList?aid=${aid}`).then(
- response => response.json()
- ).then((data) => {
- fetch(`http://comment.bilibili.com/${data[0].cid}.xml`).then(
- response => response.text()
- ).then((data) => {
- parseString(data, function (err, result) {
- var danOriginal = result.i.d;
- for (var i = 0; i < danOriginal.length; i++) {
- var info = danOriginal[i].$.p.split(',');
- var type = '';
- if (info[1] === '4') {
- type = 2;
- }
- else if (info[1] === '5') {
- type = 1;
- }
- else {
- type = 0;
- }
- var danOne = [parseInt(info[0]), type, '#' + addZero(parseInt(info[3]).toString(16), 6), 'bilibili' + info[6], danOriginal[i]._];
- dan.danmaku.push(danOne);
- }
- var sendDan = JSON.stringify(dan);
- res.send(sendDan);
-
- redis.set(`v2bilibiliaid2dan${aid}`, sendDan);
- });
- }
- ).catch(
- e => logger.error("Bilibilib Error: getting danmaku", e)
- );
- }
- ).catch(
- e => logger.error("Bilibilib Error: getting cid", e)
- );
- }
- });
- }
-};
\ No newline at end of file
diff --git a/routes/v2/get.js b/routes/v2/get.js
deleted file mode 100644
index ee13c4d..0000000
--- a/routes/v2/get.js
+++ /dev/null
@@ -1,63 +0,0 @@
-var url = require('url');
-var logger = require('../../tools/logger');
-var danmaku = require('../../models/danmaku');
-var redis = require('../../tools/redis');
-
-module.exports = function (req, res) {
- res.header('content-type', 'application/json; charset=utf-8');
-
- var ip = req.headers['x-forwarded-for'] ||
- req.connection.remoteAddress ||
- req.socket.remoteAddress ||
- req.connection.socket.remoteAddress;
-
- var query = url.parse(req.url, true).query;
- var id = query.id;
- var max = query.max;
-
- redis.client.get(`v2get${id}`, function (err, reply) {
- if (reply) {
- logger.info(`v2: DPlayer id ${id} form redis, IP: ${ip}`);
-
- var data = JSON.parse(reply);
-
- var data = max ? data.slice(data.length - max, data.length) : data;
-
- var typeMap = {
- 'right': 0,
- 'top': 1,
- 'bottom': 2
- }
-
- res.send(JSON.stringify({
- code: 0,
- version: 2,
- danmaku: data.map(item => [item.time, typeMap[item.type], item.color, item.author, item.text])
- }));
- }
- else {
- logger.info(`v2: DPlayer id ${id} form mongodb, IP: ${ip}`);
-
- danmaku.find({ player: id }, function (err, data) {
- if (err) {
- logger.error(err);
- }
-
- redis.set(`v2get${id}`, JSON.stringify(data));
-
- var data = max ? data.slice(data.length - max, data.length) : data;
-
- var typeMap = {
- 'right': 0,
- 'top': 1,
- 'bottom': 2
- }
- res.send(JSON.stringify({
- code: 0,
- version: 2,
- danmaku: data.map(item => [item.time, typeMap[item.type], item.color, item.author, item.text])
- }));
- })
- }
- });
-};
\ No newline at end of file
diff --git a/routes/v2/post.js b/routes/v2/post.js
deleted file mode 100644
index 2d328da..0000000
--- a/routes/v2/post.js
+++ /dev/null
@@ -1,117 +0,0 @@
-var logger = require('../../tools/logger');
-var danmaku = require('../../models/danmaku');
-var redis = require('../../tools/redis');
-var blank = require('../../tools/blank');
-
-function htmlEncode (str) {
- return str.replace(/&/g, "&")
- .replace(//g, ">")
- .replace(/"/g, """)
- .replace(/'/g, "'")
- .replace(/\//g, "/");
-}
-
-var postIP = [];
-
-module.exports = function (req, res) {
- var body = '';
- var jsonStr = {};
- var ip = req.headers['x-forwarded-for'] ||
- req.connection.remoteAddress ||
- req.socket.remoteAddress ||
- req.connection.socket.remoteAddress;
-
- // check black ip
- if (blank(ip)) {
- logger.info(`v2: Reject POST form ${ip} for black ip.`);
- res.send(`{"code": 1, "msg": "black ip"}`);
- return;
- }
-
- // frequency limitation
- if (postIP.indexOf(ip) !== -1) {
- logger.info(`v2: Reject POST form ${ip} for frequent operation.`);
- res.send(`{"code": 2, "msg": "frequent operation"}`);
- return;
- }
- else {
- postIP.push(ip);
- setTimeout(function () {
- postIP.splice(0, 1);
- }, 5000);
- }
-
- req.on('data', dataListener);
- req.on('end', endListener);
-
- function dataListener (chunk) {
- body += chunk;
- }
- function endListener () {
- cleanListener();
- try {
- jsonStr = JSON.parse(body);
- } catch (err) {
- jsonStr = {};
- }
-
- // check data
- if (jsonStr.player === undefined
- || jsonStr.author === undefined
- || jsonStr.time === undefined
- || jsonStr.text === undefined
- || jsonStr.color === undefined
- || jsonStr.type === undefined
- || jsonStr.text.length >= 30) {
- logger.info(`v2: Reject POST form ${ip} for illegal data: ${JSON.stringify(jsonStr)}`);
- res.send(`{"code": 3, "msg": "illegal data"}`);
- return;
- }
-
- // check token: set it yourself
- function checkToken (token) {
- return true;
- }
- if (!checkToken(jsonStr.token)) {
- logger.info(`v2: Rejected POST form ${ip} for illegal token: ${jsonStr.token}`);
- res.send(`{"code": 4, "msg": "illegal token: ${jsonStr.token}"}`);
- return;
- }
-
- // check black username
- if (blank(jsonStr.author)) {
- logger.info(`v2: Reject POST form ${jsonStr.author} for black user.`);
- res.send(`{"code": 5, "msg": "black user"}`);
- return;
- }
-
- logger.info(`v2: POST form ${ip}, data: ${JSON.stringify(jsonStr)}`);
-
- var dan = new danmaku({
- player: htmlEncode(jsonStr.player),
- author: htmlEncode(jsonStr.author),
- time: jsonStr.time,
- text: htmlEncode(jsonStr.text),
- color: htmlEncode(jsonStr.color),
- type: htmlEncode(jsonStr.type),
- ip: ip,
- referer: req.headers.referer
- });
- dan.save(function (err, d) {
- if (err) {
- logger.error(err);
- res.send(`{"code": -1, "msg": "Database error"}`);
- }
- else {
- res.send(`{"code": 0, "data": ${JSON.stringify(d)}}`);
- redis.client.del(`v2get${htmlEncode(jsonStr.player)}`);
- }
- });
- }
-
- function cleanListener () {
- req.removeListener('data', dataListener);
- req.removeListener('end', endListener);
- }
-};
\ No newline at end of file
diff --git a/routes/video-bilibili.js b/routes/video-bilibili.js
deleted file mode 100644
index b418e88..0000000
--- a/routes/video-bilibili.js
+++ /dev/null
@@ -1,72 +0,0 @@
-var url = require('url');
-var logger = require('../tools/logger');
-var redis = require('../tools/redis');
-var fetch = require('node-fetch');
-var md5 = require('blueimp-md5');
-var xml2js = require('xml2js');
-var parseString = xml2js.parseString;
-
-var appkey = 'f3bb208b3d081dc8';
-var secret = '1c15888dc316e05a15fdd0a02ed6584f';
-function getData(cid, res, type) {
- var para = `cid=${cid}&from=miniplay&player=1&quality=2&type=mp4`;
- var sign = md5(`${para}${secret}`);
- var api = `http://interface.bilibili.com/playurl?${para}&sign=${sign}`;
-
- if (type === '1') {
- res.send(api);
- }
- else {
- fetch(api, {
- headers: {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36'},
- }).then(
- response => response.text()
- ).then((data) => {
- parseString(data, { explicitArray: false }, function (err, result) {
- // res.send(result.video.durl.url.replace('http://', 'https://'));
- res.redirect(301, result.video.durl.url.replace('http://', 'https://'));
- });
- }
- ).catch(
- e => logger.error("Bilibilib Error: getting data", e)
- );
- }
-}
-
-module.exports = function (req, res) {
- var ip = req.headers['x-forwarded-for'] ||
- req.connection.remoteAddress ||
- req.socket.remoteAddress ||
- req.connection.socket.remoteAddress;
-
- var query = url.parse(req.url,true).query;
- var aid = query.aid;
- var cid = query.cid;
- var type = query.type;
-
- if (cid) {
- logger.info(`Bilibili cid2video ${cid}, IP: ${ip}`);
- getData(cid, res, type);
- }
- else {
- redis.client.get(`bilibiliaid2cid${aid}`, function(err, reply) {
- if (reply) {
- logger.info(`Bilibili aid2video ${aid} form redis, IP: ${ip}`);
- getData(reply, res, type);
- }
- else {
- logger.info(`Bilibili aid2video ${aid} form origin, IP: ${ip}`);
-
- fetch(`http://www.bilibili.com/widget/getPageList?aid=${aid}`).then(
- response => response.json()
- ).then((data) => {
- redis.set(`bilibiliaid2cid${aid}`, data[0].cid);
- getData(data[0].cid, res, type);
- }
- ).catch(
- e => logger.error("Bilibili aid2video Error: getting cid", e)
- );
- }
- });
- }
-};
\ No newline at end of file
diff --git a/tools/blank.js b/tools/blank.js
deleted file mode 100644
index 8c0be5a..0000000
--- a/tools/blank.js
+++ /dev/null
@@ -1,11 +0,0 @@
-var fs = require('fs');
-var blanklist = fs.readFileSync('blacklist').toString().split('\n');
-
-module.exports = function (text) {
- for (var i = 0; i < blanklist.length; i++) {
- if (new RegExp(blanklist[i]).test(text)) {
- return true;
- }
- }
- return false;
-}
\ No newline at end of file
diff --git a/tools/logger.js b/tools/logger.js
deleted file mode 100644
index b1d9969..0000000
--- a/tools/logger.js
+++ /dev/null
@@ -1,19 +0,0 @@
-var log4js = require('log4js');
-log4js.configure({
- appenders: {
- DPlayer: {
- type: 'file',
- filename: 'logs/DPlayer.log',
- maxLogSize: 20480,
- backups: 3,
- compress: true
- },
- console: {
- type: 'console'
- }
- },
- categories: { default: { appenders: ['DPlayer', 'console'], level: 'INFO' } }
-});
-var logger = log4js.getLogger('DPlayer');
-
-module.exports = logger;
\ No newline at end of file
diff --git a/tools/mongodb.js b/tools/mongodb.js
deleted file mode 100644
index 6e82245..0000000
--- a/tools/mongodb.js
+++ /dev/null
@@ -1,13 +0,0 @@
-var mongoose = require('mongoose');
-var mongodbUrl;
-if (process.env.MONGO_PORT_27017_TCP_ADDR && process.env.MONGO_PORT_27017_TCP_PORT && process.env.MONGO_INSTANCE_NAME) {
- mongodbUrl = 'mongodb://' + process.env.MONGO_PORT_27017_TCP_ADDR + ':' + process.env.MONGO_PORT_27017_TCP_PORT + '/' + process.env.MONGO_INSTANCE_NAME;
-}
-else {
- mongodbUrl = 'mongodb://127.0.0.1:27017/danmaku';
-}
-mongoose.connect(mongodbUrl, {
- useMongoClient: true,
-});
-
-module.exports = mongoose;
\ No newline at end of file
diff --git a/tools/redis.js b/tools/redis.js
deleted file mode 100644
index 145c096..0000000
--- a/tools/redis.js
+++ /dev/null
@@ -1,26 +0,0 @@
-var logger = require('./logger');
-var redis = require("redis");
-var client;
-if (process.env.REDIS_PORT_6379_TCP_ADDR && process.env.REDIS_PORT_6379_TCP_PORT) {
- client = redis.createClient({
- host: process.env.REDIS_PORT_6379_TCP_ADDR,
- port: process.env.REDIS_PORT_6379_TCP_PORT
- });
-}
-else {
- client = redis.createClient();
-}
-
-
-client.on("error", function (err) {
- logger.error('Redis Error ' + err);
-});
-
-module.exports = {
- set: function (key, value) {
- client.set(key, value, redis.print);
- client.expire(key, 86400);
- logger.info('Set redis: ' + key);
- },
- client: client
-};
\ No newline at end of file
diff --git a/utils/logger.js b/utils/logger.js
new file mode 100644
index 0000000..4805887
--- /dev/null
+++ b/utils/logger.js
@@ -0,0 +1,29 @@
+const winston = require('winston');
+
+const logger = winston.createLogger({
+ level: 'info',
+ format: winston.format.json(),
+ transports: [
+ //
+ // - Write to all logs with level `info` and below to `combined.log`
+ // - Write all logs error (and below) to `error.log`.
+ //
+ new winston.transports.File({
+ filename: 'logs/error.log',
+ level: 'error',
+ }),
+ new winston.transports.File({ filename: 'logs/combined.log' }),
+ ],
+});
+
+//
+// If we're not in production then log to the `console` with the format:
+// `${info.level}: ${info.message} JSON.stringify({ ...rest }) `
+//
+logger.add(
+ new winston.transports.Console({
+ format: winston.format.combine(winston.format.colorize(), winston.format.simple()),
+ })
+);
+
+module.exports = logger;
diff --git a/utils/mongodb.js b/utils/mongodb.js
new file mode 100644
index 0000000..90206fd
--- /dev/null
+++ b/utils/mongodb.js
@@ -0,0 +1,30 @@
+const mongoose = require('mongoose');
+const config = require('../config');
+const logger = require('./logger');
+
+mongoose.connect(`mongodb://${(config.mongodb.username && config.mongodb.password) ? `${config.mongodb.username}:${config.mongodb.password}@` : ''}${config.mongodb.host}:${config.mongodb.port}/${config.mongodb.database}`);
+
+const db = mongoose.connection;
+db.on('error', (e) => {
+ logger.error('Mongodb error: ', e);
+});
+db.once('open', () => {
+ logger.info('Mongodb connected');
+});
+
+const danmakuSchema = new mongoose.Schema({
+ id: {
+ type: String,
+ index: true,
+ },
+ author: String,
+ time: Number,
+ text: String,
+ color: Number,
+ type: Number,
+ ip: String,
+ referer: String,
+});
+const danmaku = mongoose.model('dan', danmakuSchema);
+
+module.exports = danmaku;
\ No newline at end of file
diff --git a/utils/redis.js b/utils/redis.js
new file mode 100644
index 0000000..65395e5
--- /dev/null
+++ b/utils/redis.js
@@ -0,0 +1,35 @@
+const logger = require('./logger');
+const config = require('../config');
+const redis = require('redis');
+const { promisify } = require('util');
+
+const options = {
+ host: config.redis.host,
+ port: config.redis.port,
+ password: config.redis.password,
+};
+if (!options.password) {
+ delete options.password;
+}
+const client = redis.createClient(options);
+
+client.on('error', (e) => {
+ logger.error('Redis error: ', e);
+});
+
+client.on('connect', () => {
+ logger.info('Redis connected');
+});
+
+const getAsync = promisify(client.get).bind(client);
+
+module.exports = {
+ set: (key, value) => {
+ logger.info('Set redis: ' + key);
+ client.set(key, value);
+ },
+ get: async (key) => await getAsync(key),
+ del: (key) => {
+ client.del(key);
+ },
+};
\ No newline at end of file
diff --git a/yarn.lock b/yarn.lock
index 8161006..7213c37 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2,181 +2,134 @@
# yarn lockfile v1
-accepts@~1.3.4:
- version "1.3.4"
- resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz#86246758c7dd6d21a6474ff084a4740ec05eb21f"
+accepts@^1.2.2:
+ version "1.3.5"
+ resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2"
dependencies:
- mime-types "~2.1.16"
+ mime-types "~2.1.18"
negotiator "0.6.1"
-addressparser@1.0.1:
- version "1.0.1"
- resolved "https://registry.npmjs.org/addressparser/-/addressparser-1.0.1.tgz#47afbe1a2a9262191db6838e4fd1d39b40821746"
-
-agent-base@2:
- version "2.1.1"
- resolved "https://registry.npmjs.org/agent-base/-/agent-base-2.1.1.tgz#d6de10d5af6132d5bd692427d46fc538539094c7"
+acorn-jsx@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-4.1.1.tgz#e8e41e48ea2fe0c896740610ab6a4ffd8add225e"
dependencies:
- extend "~3.0.0"
- semver "~5.0.1"
+ acorn "^5.0.3"
+
+acorn@^5.0.3, acorn@^5.6.0:
+ version "5.7.1"
+ resolved "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz#f095829297706a7c9776958c0afc8930a9b9d9d8"
-ajv@^5.1.0:
- version "5.5.2"
- resolved "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965"
+ajv-keywords@^3.0.0:
+ version "3.2.0"
+ resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a"
+
+ajv@^6.0.1, ajv@^6.5.0:
+ version "6.5.2"
+ resolved "https://registry.npmjs.org/ajv/-/ajv-6.5.2.tgz#678495f9b82f7cca6be248dd92f59bff5e1f4360"
dependencies:
- co "^4.6.0"
- fast-deep-equal "^1.0.0"
+ fast-deep-equal "^2.0.1"
fast-json-stable-stringify "^2.0.0"
- json-schema-traverse "^0.3.0"
+ json-schema-traverse "^0.4.1"
+ uri-js "^4.2.1"
+
+ansi-escapes@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30"
ansi-regex@^2.0.0:
version "2.1.1"
resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
+ansi-regex@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
+
ansi-styles@^2.2.1:
version "2.2.1"
resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
-array-flatten@1.1.1:
- version "1.1.1"
- resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
-
-asn1@~0.2.3:
- version "0.2.3"
- resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86"
-
-assert-plus@1.0.0, assert-plus@^1.0.0:
- version "1.0.0"
- resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
-
-assert-plus@^0.2.0:
- version "0.2.0"
- resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234"
+ansi-styles@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
+ dependencies:
+ color-convert "^1.9.0"
-ast-types@0.x.x:
- version "0.10.1"
- resolved "https://registry.npmjs.org/ast-types/-/ast-types-0.10.1.tgz#f52fca9715579a14f841d67d7f8d25432ab6a3dd"
+any-promise@^1.1.0:
+ version "1.3.0"
+ resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
-async@2.1.4:
- version "2.1.4"
- resolved "https://registry.npmjs.org/async/-/async-2.1.4.tgz#2d2160c7788032e4dd6cbe2502f1f9a2c8f6cde4"
+argparse@^1.0.7:
+ version "1.0.10"
+ resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
dependencies:
- lodash "^4.14.0"
+ sprintf-js "~1.0.2"
-async@~2.1.2:
- version "2.1.5"
- resolved "https://registry.npmjs.org/async/-/async-2.1.5.tgz#e587c68580994ac67fc56ff86d3ac56bdbe810bc"
+array-union@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
dependencies:
- lodash "^4.14.0"
-
-asynckit@^0.4.0:
- version "0.4.0"
- resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
+ array-uniq "^1.0.1"
-aws-sign2@~0.6.0:
- version "0.6.0"
- resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f"
-
-aws-sign2@~0.7.0:
- version "0.7.0"
- resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
+array-uniq@^1.0.1:
+ version "1.0.3"
+ resolved "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
-aws4@^1.2.1, aws4@^1.6.0:
- version "1.6.0"
- resolved "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
+arrify@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
-axios@^0.15.3:
- version "0.15.3"
- resolved "https://registry.npmjs.org/axios/-/axios-0.15.3.tgz#2c9d638b2e191a08ea1d6cc988eadd6ba5bdc053"
+async@2.6.1, async@^2.6.0:
+ version "2.6.1"
+ resolved "https://registry.npmjs.org/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610"
dependencies:
- follow-redirects "1.0.0"
+ lodash "^4.17.10"
-bcrypt-pbkdf@^1.0.0:
- version "1.0.1"
- resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d"
+babel-code-frame@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
dependencies:
- tweetnacl "^0.14.3"
+ chalk "^1.1.3"
+ esutils "^2.0.2"
+ js-tokens "^3.0.2"
-bl@~1.1.2:
- version "1.1.2"
- resolved "https://registry.npmjs.org/bl/-/bl-1.1.2.tgz#fdca871a99713aa00d19e3bbba41c44787a65398"
- dependencies:
- readable-stream "~2.0.5"
+balanced-match@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
bluebird@3.5.0:
version "3.5.0"
resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c"
-blueimp-md5@2.10.0:
- version "2.10.0"
- resolved "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.10.0.tgz#02f0843921f90dca14f5b8920a38593201d6964d"
-
-body-parser@1.18.2:
- version "1.18.2"
- resolved "https://registry.npmjs.org/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 "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f"
+brace-expansion@^1.1.7:
+ version "1.1.11"
+ resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
dependencies:
- hoek "2.x.x"
-
-boom@4.x.x:
- version "4.3.1"
- resolved "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31"
- dependencies:
- hoek "4.x.x"
-
-boom@5.x.x:
- version "5.2.0"
- resolved "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02"
- dependencies:
- hoek "4.x.x"
+ balanced-match "^1.0.0"
+ concat-map "0.0.1"
bson@~1.0.4:
version "1.0.4"
resolved "https://registry.npmjs.org/bson/-/bson-1.0.4.tgz#93c10d39eaa5b58415cbc4052f3e53e562b0b72c"
-buffer-shims@~1.0.0:
- version "1.0.0"
- resolved "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51"
-
-buildmail@4.0.1:
- version "4.0.1"
- resolved "https://registry.npmjs.org/buildmail/-/buildmail-4.0.1.tgz#877f7738b78729871c9a105e3b837d2be11a7a72"
- dependencies:
- addressparser "1.0.1"
- libbase64 "0.1.0"
- libmime "3.0.0"
- libqp "1.1.0"
- nodemailer-fetch "1.6.0"
- nodemailer-shared "1.1.0"
- punycode "1.4.1"
+bson@~1.0.5:
+ version "1.0.9"
+ resolved "https://registry.npmjs.org/bson/-/bson-1.0.9.tgz#12319f8323b1254739b7c6bef8d3e89ae05a2f57"
bytes@3.0.0:
version "3.0.0"
resolved "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
-caseless@~0.11.0:
- version "0.11.0"
- resolved "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7"
+caller-path@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f"
+ dependencies:
+ callsites "^0.2.0"
-caseless@~0.12.0:
- version "0.12.0"
- resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
+callsites@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca"
-chalk@^1.1.1:
+chalk@^1.1.3:
version "1.1.3"
resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
dependencies:
@@ -186,168 +139,336 @@ chalk@^1.1.1:
strip-ansi "^3.0.0"
supports-color "^2.0.0"
-circular-json@^0.4.0:
- version "0.4.0"
- resolved "https://registry.npmjs.org/circular-json/-/circular-json-0.4.0.tgz#c448ea998b7fe31ecf472ec29c6b608e2e2a62fd"
+chalk@^2.0.0, chalk@^2.1.0:
+ version "2.4.1"
+ resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e"
+ dependencies:
+ ansi-styles "^3.2.1"
+ escape-string-regexp "^1.0.5"
+ supports-color "^5.3.0"
+
+chardet@^0.4.0:
+ version "0.4.2"
+ resolved "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2"
+
+circular-json@^0.3.1:
+ version "0.3.3"
+ resolved "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66"
+
+cli-cursor@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
+ dependencies:
+ restore-cursor "^2.0.0"
+
+cli-width@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
+
+co-body@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.npmjs.org/co-body/-/co-body-6.0.0.tgz#965b9337d7f5655480787471f4237664820827e3"
+ dependencies:
+ inflation "^2.0.0"
+ qs "^6.5.2"
+ raw-body "^2.3.3"
+ type-is "^1.6.16"
co@^4.6.0:
version "4.6.0"
resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
-co@~3.0.6:
- version "3.0.6"
- resolved "https://registry.npmjs.org/co/-/co-3.0.6.tgz#1445f226c5eb956138e68c9ac30167ea7d2e6bda"
+color-convert@^0.5.0:
+ version "0.5.3"
+ resolved "https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz#bdb6c69ce660fadffe0b0007cc447e1b9f7282bd"
-combined-stream@^1.0.5, combined-stream@~1.0.5:
- version "1.0.5"
- resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009"
+color-convert@^1.9.0:
+ version "1.9.2"
+ resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz#49881b8fba67df12a96bdf3f56c0aab9e7913147"
dependencies:
- delayed-stream "~1.0.0"
+ color-name "1.1.1"
-commander@^2.9.0:
- version "2.13.0"
- resolved "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c"
+color-name@1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz#4b1415304cf50028ea81643643bd82ea05803689"
-content-disposition@0.5.2:
- version "0.5.2"
- resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4"
+color-name@^1.0.0:
+ version "1.1.3"
+ resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
-content-type@~1.0.4:
- version "1.0.4"
- resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
+color-string@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991"
+ dependencies:
+ color-name "^1.0.0"
-cookie-signature@1.0.6:
- version "1.0.6"
- resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
+color@0.8.x:
+ version "0.8.0"
+ resolved "https://registry.npmjs.org/color/-/color-0.8.0.tgz#890c07c3fd4e649537638911cf691e5458b6fca5"
+ dependencies:
+ color-convert "^0.5.0"
+ color-string "^0.3.0"
-cookie@0.3.1:
- version "0.3.1"
- resolved "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb"
+colornames@0.0.2:
+ version "0.0.2"
+ resolved "https://registry.npmjs.org/colornames/-/colornames-0.0.2.tgz#d811fd6c84f59029499a8ac4436202935b92be31"
-core-util-is@1.0.2, core-util-is@~1.0.0:
- version "1.0.2"
- resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
+colors@^1.2.1:
+ version "1.3.0"
+ resolved "https://registry.npmjs.org/colors/-/colors-1.3.0.tgz#5f20c9fef6945cb1134260aab33bfbdc8295e04e"
-cryptiles@2.x.x:
- version "2.0.5"
- resolved "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8"
+colorspace@1.0.x:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/colorspace/-/colorspace-1.0.1.tgz#c99c796ed31128b9876a52e1ee5ee03a4a719749"
dependencies:
- boom "2.x.x"
+ color "0.8.x"
+ text-hex "0.0.x"
-cryptiles@3.x.x:
- version "3.1.2"
- resolved "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe"
- dependencies:
- boom "5.x.x"
+concat-map@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+
+content-disposition@~0.5.0:
+ version "0.5.2"
+ resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4"
-dashdash@^1.12.0:
- version "1.14.1"
- resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
+content-type@^1.0.0:
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
+
+cookies@~0.7.0:
+ version "0.7.1"
+ resolved "https://registry.npmjs.org/cookies/-/cookies-0.7.1.tgz#7c8a615f5481c61ab9f16c833731bcb8f663b99b"
dependencies:
- assert-plus "^1.0.0"
+ depd "~1.1.1"
+ keygrip "~1.0.2"
-data-uri-to-buffer@1:
- version "1.2.0"
- resolved "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-1.2.0.tgz#77163ea9c20d8641b4707e8f18abdf9a78f34835"
+copy-to@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/copy-to/-/copy-to-2.0.1.tgz#2680fbb8068a48d08656b6098092bdafc906f4a5"
-date-format@^1.2.0:
- version "1.2.0"
- resolved "https://registry.npmjs.org/date-format/-/date-format-1.2.0.tgz#615e828e233dd1ab9bb9ae0950e0ceccfa6ecad8"
+core-util-is@~1.0.0:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
-debug@2, debug@2.6.9, debug@^2.2.0:
- version "2.6.9"
- resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
+cross-spawn@^6.0.5:
+ version "6.0.5"
+ resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
dependencies:
- ms "2.0.0"
+ nice-try "^1.0.4"
+ path-key "^2.0.1"
+ semver "^5.5.0"
+ shebang-command "^1.2.0"
+ which "^1.2.9"
-debug@^3.1.0:
+debug@*, debug@^3.1.0:
version "3.1.0"
resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
dependencies:
ms "2.0.0"
-debug@~2.2.0:
- version "2.2.0"
- resolved "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da"
+debug@2.6.9:
+ version "2.6.9"
+ resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
dependencies:
- ms "0.7.1"
+ ms "2.0.0"
+
+deep-equal@~1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
deep-is@~0.1.3:
version "0.1.3"
resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
-degenerator@~1.0.2:
- version "1.0.4"
- resolved "https://registry.npmjs.org/degenerator/-/degenerator-1.0.4.tgz#fcf490a37ece266464d9cc431ab98c5819ced095"
+define-properties@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94"
dependencies:
- ast-types "0.x.x"
- escodegen "1.x.x"
- esprima "3.x.x"
+ foreach "^2.0.5"
+ object-keys "^1.0.8"
-delayed-stream@~1.0.0:
+del@^2.0.2:
+ version "2.2.2"
+ resolved "https://registry.npmjs.org/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8"
+ dependencies:
+ globby "^5.0.0"
+ is-path-cwd "^1.0.0"
+ is-path-in-cwd "^1.0.0"
+ object-assign "^4.0.1"
+ pify "^2.0.0"
+ pinkie-promise "^2.0.0"
+ rimraf "^2.2.8"
+
+delegates@^1.0.0:
version "1.0.0"
- resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
+ resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
+
+depd@^1.1.0, depd@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
-depd@1.1.1, depd@~1.1.1:
+depd@~1.1.1:
version "1.1.1"
resolved "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359"
-destroy@~1.0.4:
+destroy@^1.0.3:
version "1.0.4"
resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
+diagnostics@^1.0.1:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/diagnostics/-/diagnostics-1.1.0.tgz#e1090900b49523e8527be20f081275205f2ae36a"
+ dependencies:
+ colorspace "1.0.x"
+ enabled "1.0.x"
+ kuler "0.0.x"
+
+doctrine@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d"
+ dependencies:
+ esutils "^2.0.2"
+
double-ended-queue@^2.1.0-0:
version "2.1.0-0"
resolved "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz#103d3527fd31528f40188130c841efdd78264e5c"
-ecc-jsbn@~0.1.1:
- version "0.1.1"
- resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505"
- dependencies:
- jsbn "~0.1.0"
-
ee-first@1.1.1:
version "1.1.1"
resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
-encodeurl@~1.0.1:
- version "1.0.1"
- resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20"
+enabled@1.0.x:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/enabled/-/enabled-1.0.2.tgz#965f6513d2c2d1c5f4652b64a2e3396467fc2f93"
+ dependencies:
+ env-variable "0.0.x"
+
+env-variable@0.0.x:
+ version "0.0.4"
+ resolved "https://registry.npmjs.org/env-variable/-/env-variable-0.0.4.tgz#0d6280cf507d84242befe35a512b5ae4be77c54e"
+
+error-inject@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/error-inject/-/error-inject-1.0.0.tgz#e2b3d91b54aed672f309d950d154850fa11d4f37"
-encoding@^0.1.11:
- version "0.1.12"
- resolved "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb"
+es-abstract@^1.10.0:
+ version "1.12.0"
+ resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165"
dependencies:
- iconv-lite "~0.4.13"
+ es-to-primitive "^1.1.1"
+ function-bind "^1.1.1"
+ has "^1.0.1"
+ is-callable "^1.1.3"
+ is-regex "^1.0.4"
-es6-promise@3.2.1:
- version "3.2.1"
- resolved "https://registry.npmjs.org/es6-promise/-/es6-promise-3.2.1.tgz#ec56233868032909207170c39448e24449dd1fc4"
+es-to-primitive@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d"
+ dependencies:
+ is-callable "^1.1.1"
+ is-date-object "^1.0.1"
+ is-symbol "^1.0.1"
-escape-html@~1.0.3:
+escape-html@~1.0.1:
version "1.0.3"
resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
-escape-string-regexp@^1.0.2:
+escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
version "1.0.5"
resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
-escodegen@1.x.x:
- version "1.9.0"
- resolved "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz#9811a2f265dc1cd3894420ee3717064b632b8852"
+eslint-config-prettier@2.9.0:
+ version "2.9.0"
+ resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-2.9.0.tgz#5ecd65174d486c22dff389fe036febf502d468a3"
+ dependencies:
+ get-stdin "^5.0.1"
+
+eslint-plugin-prettier@2.6.1:
+ version "2.6.1"
+ resolved "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-2.6.1.tgz#de902b4a66b7bca24296429a59a1cc04020ccbbd"
+ dependencies:
+ fast-diff "^1.1.1"
+ jest-docblock "^21.0.0"
+
+eslint-scope@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz#50bf3071e9338bcdc43331794a0cb533f0136172"
dependencies:
- esprima "^3.1.3"
- estraverse "^4.2.0"
+ esrecurse "^4.1.0"
+ estraverse "^4.1.1"
+
+eslint-visitor-keys@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d"
+
+eslint@5.0.1:
+ version "5.0.1"
+ resolved "https://registry.npmjs.org/eslint/-/eslint-5.0.1.tgz#109b90ab7f7a736f54e0f341c8bb9d09777494c3"
+ dependencies:
+ ajv "^6.5.0"
+ babel-code-frame "^6.26.0"
+ chalk "^2.1.0"
+ cross-spawn "^6.0.5"
+ debug "^3.1.0"
+ doctrine "^2.1.0"
+ eslint-scope "^4.0.0"
+ eslint-visitor-keys "^1.0.0"
+ espree "^4.0.0"
+ esquery "^1.0.1"
esutils "^2.0.2"
- optionator "^0.8.1"
- optionalDependencies:
- source-map "~0.5.6"
+ file-entry-cache "^2.0.0"
+ functional-red-black-tree "^1.0.1"
+ glob "^7.1.2"
+ globals "^11.5.0"
+ ignore "^3.3.3"
+ imurmurhash "^0.1.4"
+ inquirer "^5.2.0"
+ is-resolvable "^1.1.0"
+ js-yaml "^3.11.0"
+ json-stable-stringify-without-jsonify "^1.0.1"
+ levn "^0.3.0"
+ lodash "^4.17.5"
+ minimatch "^3.0.4"
+ mkdirp "^0.5.1"
+ natural-compare "^1.4.0"
+ optionator "^0.8.2"
+ path-is-inside "^1.0.2"
+ pluralize "^7.0.0"
+ progress "^2.0.0"
+ regexpp "^1.1.0"
+ require-uncached "^1.0.3"
+ semver "^5.5.0"
+ string.prototype.matchall "^2.0.0"
+ strip-ansi "^4.0.0"
+ strip-json-comments "^2.0.1"
+ table "^4.0.3"
+ text-table "^0.2.0"
+
+espree@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/espree/-/espree-4.0.0.tgz#253998f20a0f82db5d866385799d912a83a36634"
+ dependencies:
+ acorn "^5.6.0"
+ acorn-jsx "^4.1.1"
+
+esprima@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804"
+
+esquery@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708"
+ dependencies:
+ estraverse "^4.0.0"
-esprima@3.x.x, esprima@^3.1.3:
- version "3.1.3"
- resolved "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633"
+esrecurse@^4.1.0:
+ version "4.2.1"
+ resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf"
+ dependencies:
+ estraverse "^4.1.0"
-estraverse@^4.2.0:
+estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1:
version "4.2.0"
resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
@@ -355,60 +476,21 @@ esutils@^2.0.2:
version "2.0.2"
resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
-etag@~1.8.1:
- version "1.8.1"
- resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
-
-express@4.16.2:
- version "4.16.2"
- resolved "https://registry.npmjs.org/express/-/express-4.16.2.tgz#e35c6dfe2d64b7dca0a5cd4f21781be3299e076c"
- dependencies:
- accepts "~1.3.4"
- array-flatten "1.1.1"
- body-parser "1.18.2"
- content-disposition "0.5.2"
- content-type "~1.0.4"
- cookie "0.3.1"
- cookie-signature "1.0.6"
- debug "2.6.9"
- depd "~1.1.1"
- encodeurl "~1.0.1"
- escape-html "~1.0.3"
- etag "~1.8.1"
- finalhandler "1.1.0"
- fresh "0.5.2"
- merge-descriptors "1.0.1"
- methods "~1.1.2"
- on-finished "~2.3.0"
- parseurl "~1.3.2"
- path-to-regexp "0.1.7"
- proxy-addr "~2.0.2"
- qs "6.5.1"
- range-parser "~1.2.0"
- safe-buffer "5.1.1"
- send "0.16.1"
- serve-static "1.13.1"
- setprototypeof "1.1.0"
- statuses "~1.3.1"
- type-is "~1.6.15"
- utils-merge "1.0.1"
- vary "~1.1.2"
-
-extend@3, extend@^3.0.0, extend@~3.0.0, extend@~3.0.1:
- version "3.0.1"
- resolved "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
-
-extsprintf@1.3.0:
- version "1.3.0"
- resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
+external-editor@^2.1.0:
+ version "2.2.0"
+ resolved "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5"
+ dependencies:
+ chardet "^0.4.0"
+ iconv-lite "^0.4.17"
+ tmp "^0.0.33"
-extsprintf@^1.2.0:
- version "1.4.0"
- resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
+fast-deep-equal@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49"
-fast-deep-equal@^1.0.0:
- version "1.0.0"
- resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff"
+fast-diff@^1.1.1:
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/fast-diff/-/fast-diff-1.1.2.tgz#4b62c42b8e03de3f848460b639079920695d0154"
fast-json-stable-stringify@^2.0.0:
version "2.0.0"
@@ -418,117 +500,89 @@ fast-levenshtein@~2.0.4:
version "2.0.6"
resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
-file-uri-to-path@1:
- version "1.0.0"
- resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd"
-
-finalhandler@1.1.0:
- version "1.1.0"
- resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz#ce0b6855b45853e791b2fcc680046d88253dd7f5"
- dependencies:
- debug "2.6.9"
- encodeurl "~1.0.1"
- escape-html "~1.0.3"
- on-finished "~2.3.0"
- parseurl "~1.3.2"
- statuses "~1.3.1"
- unpipe "~1.0.0"
-
-follow-redirects@1.0.0:
- version "1.0.0"
- resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.0.0.tgz#8e34298cbd2e176f254effec75a1c78cc849fd37"
- dependencies:
- debug "^2.2.0"
+fast-safe-stringify@^2.0.4:
+ version "2.0.4"
+ resolved "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.4.tgz#4fe828718aa61dbcf9119c3c24e79cc4dea973b2"
-forever-agent@~0.6.1:
- version "0.6.1"
- resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
+fecha@^2.3.3:
+ version "2.3.3"
+ resolved "https://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz#948e74157df1a32fd1b12c3a3c3cdcb6ec9d96cd"
-form-data@~2.0.0:
+figures@^2.0.0:
version "2.0.0"
- resolved "https://registry.npmjs.org/form-data/-/form-data-2.0.0.tgz#6f0aebadcc5da16c13e1ecc11137d85f9b883b25"
+ resolved "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
dependencies:
- asynckit "^0.4.0"
- combined-stream "^1.0.5"
- mime-types "^2.1.11"
+ escape-string-regexp "^1.0.5"
-form-data@~2.1.1:
- version "2.1.4"
- resolved "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1"
+file-entry-cache@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361"
dependencies:
- asynckit "^0.4.0"
- combined-stream "^1.0.5"
- mime-types "^2.1.12"
+ flat-cache "^1.2.1"
+ object-assign "^4.0.1"
-form-data@~2.3.1:
- version "2.3.1"
- resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz#6fb94fbd71885306d73d15cc497fe4cc4ecd44bf"
+flat-cache@^1.2.1:
+ version "1.3.0"
+ resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481"
dependencies:
- asynckit "^0.4.0"
- combined-stream "^1.0.5"
- mime-types "^2.1.12"
+ circular-json "^0.3.1"
+ del "^2.0.2"
+ graceful-fs "^4.1.2"
+ write "^0.2.1"
-forwarded@~0.1.2:
- version "0.1.2"
- resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84"
+foreach@^2.0.5:
+ version "2.0.5"
+ resolved "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99"
-fresh@0.5.2:
+fresh@^0.5.2:
version "0.5.2"
resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
-ftp@~0.3.10:
- version "0.3.10"
- resolved "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz#9197d861ad8142f3e63d5a83bfe4c59f7330885d"
- dependencies:
- readable-stream "1.1.x"
- xregexp "2.0.0"
-
-generate-function@^2.0.0:
- version "2.0.0"
- resolved "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74"
-
-generate-object-property@^1.1.0:
- version "1.2.0"
- resolved "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0"
- dependencies:
- is-property "^1.0.0"
-
-get-uri@2:
- version "2.0.1"
- resolved "https://registry.npmjs.org/get-uri/-/get-uri-2.0.1.tgz#dbdcacacd8c608a38316869368117697a1631c59"
- dependencies:
- data-uri-to-buffer "1"
- debug "2"
- extend "3"
- file-uri-to-path "1"
- ftp "~0.3.10"
- readable-stream "2"
+fs.realpath@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
-getpass@^0.1.1:
- version "0.1.7"
- resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
- dependencies:
- assert-plus "^1.0.0"
+function-bind@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
-har-schema@^2.0.0:
- version "2.0.0"
- resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
+functional-red-black-tree@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
-har-validator@~2.0.6:
- version "2.0.6"
- resolved "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d"
- dependencies:
- chalk "^1.1.1"
- commander "^2.9.0"
- is-my-json-valid "^2.12.4"
+get-stdin@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398"
+
+glob@^7.0.3, glob@^7.0.5, glob@^7.1.2:
+ version "7.1.2"
+ resolved "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.0.4"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
+globals@^11.5.0:
+ version "11.7.0"
+ resolved "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz#a583faa43055b1aca771914bf68258e2fc125673"
+
+globby@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d"
+ dependencies:
+ array-union "^1.0.1"
+ arrify "^1.0.0"
+ glob "^7.0.3"
+ object-assign "^4.0.1"
+ pify "^2.0.0"
pinkie-promise "^2.0.0"
-har-validator@~5.0.3:
- version "5.0.3"
- resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd"
- dependencies:
- ajv "^5.1.0"
- har-schema "^2.0.0"
+graceful-fs@^4.1.2:
+ version "4.1.11"
+ resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
has-ansi@^2.0.0:
version "2.0.0"
@@ -536,151 +590,136 @@ has-ansi@^2.0.0:
dependencies:
ansi-regex "^2.0.0"
-hawk@~3.1.3:
- version "3.1.3"
- resolved "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4"
- dependencies:
- boom "2.x.x"
- cryptiles "2.x.x"
- hoek "2.x.x"
- sntp "1.x.x"
+has-flag@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
-hawk@~6.0.2:
- version "6.0.2"
- resolved "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038"
- dependencies:
- boom "4.x.x"
- cryptiles "3.x.x"
- hoek "4.x.x"
- sntp "2.x.x"
+has-symbols@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44"
-hipchat-notifier@^1.1.0:
- version "1.1.0"
- resolved "https://registry.npmjs.org/hipchat-notifier/-/hipchat-notifier-1.1.0.tgz#b6d249755437c191082367799d3ba9a0f23b231e"
+has@^1.0.1:
+ version "1.0.3"
+ resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
dependencies:
- lodash "^4.0.0"
- request "^2.0.0"
-
-hoek@2.x.x:
- version "2.16.3"
- resolved "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
-
-hoek@4.x.x:
- version "4.2.0"
- resolved "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz#72d9d0754f7fe25ca2d01ad8f8f9a9449a89526d"
-
-hooks-fixed@2.0.2:
- version "2.0.2"
- resolved "https://registry.npmjs.org/hooks-fixed/-/hooks-fixed-2.0.2.tgz#20076daa07e77d8a6106883ce3f1722e051140b0"
+ function-bind "^1.1.1"
-http-errors@1.6.2, http-errors@~1.6.2:
- version "1.6.2"
- resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736"
+http-assert@^1.1.0:
+ version "1.3.0"
+ resolved "https://registry.npmjs.org/http-assert/-/http-assert-1.3.0.tgz#a31a5cf88c873ecbb5796907d4d6f132e8c01e4a"
dependencies:
- depd "1.1.1"
- inherits "2.0.3"
- setprototypeof "1.0.3"
- statuses ">= 1.3.1 < 2"
+ deep-equal "~1.0.1"
+ http-errors "~1.6.1"
-http-proxy-agent@1:
- version "1.0.0"
- resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-1.0.0.tgz#cc1ce38e453bf984a0f7702d2dd59c73d081284a"
+http-errors@1.6.3, http-errors@^1.2.8, http-errors@^1.3.1, http-errors@~1.6.1:
+ version "1.6.3"
+ resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d"
dependencies:
- agent-base "2"
- debug "2"
- extend "3"
+ depd "~1.1.2"
+ inherits "2.0.3"
+ setprototypeof "1.1.0"
+ statuses ">= 1.4.0 < 2"
-http-signature@~1.1.0:
- version "1.1.1"
- resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf"
+iconv-lite@0.4.23, iconv-lite@^0.4.17:
+ version "0.4.23"
+ resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63"
dependencies:
- assert-plus "^0.2.0"
- jsprim "^1.2.2"
- sshpk "^1.7.0"
+ safer-buffer ">= 2.1.2 < 3"
-http-signature@~1.2.0:
- version "1.2.0"
- resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
- dependencies:
- assert-plus "^1.0.0"
- jsprim "^1.2.2"
- sshpk "^1.7.0"
+ignore@^3.3.3:
+ version "3.3.10"
+ resolved "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043"
-httpntlm@1.6.1:
- version "1.6.1"
- resolved "https://registry.npmjs.org/httpntlm/-/httpntlm-1.6.1.tgz#ad01527143a2e8773cfae6a96f58656bb52a34b2"
- dependencies:
- httpreq ">=0.4.22"
- underscore "~1.7.0"
+imurmurhash@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
-httpreq@>=0.4.22:
- version "0.4.24"
- resolved "https://registry.npmjs.org/httpreq/-/httpreq-0.4.24.tgz#4335ffd82cd969668a39465c929ac61d6393627f"
+inflation@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/inflation/-/inflation-2.0.0.tgz#8b417e47c28f925a45133d914ca1fd389107f30f"
-https-proxy-agent@1:
- version "1.0.0"
- resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz#35f7da6c48ce4ddbfa264891ac593ee5ff8671e6"
+inflight@^1.0.4:
+ version "1.0.6"
+ resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
dependencies:
- agent-base "2"
- debug "2"
- extend "3"
+ once "^1.3.0"
+ wrappy "1"
-iconv-lite@0.4.15:
- version "0.4.15"
- resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb"
+inherits@2, inherits@2.0.3, inherits@~2.0.3:
+ version "2.0.3"
+ resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
-iconv-lite@0.4.19:
- version "0.4.19"
- resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
+inquirer@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.npmjs.org/inquirer/-/inquirer-5.2.0.tgz#db350c2b73daca77ff1243962e9f22f099685726"
+ dependencies:
+ ansi-escapes "^3.0.0"
+ chalk "^2.0.0"
+ cli-cursor "^2.1.0"
+ cli-width "^2.0.0"
+ external-editor "^2.1.0"
+ figures "^2.0.0"
+ lodash "^4.3.0"
+ mute-stream "0.0.7"
+ run-async "^2.2.0"
+ rxjs "^5.5.2"
+ string-width "^2.1.0"
+ strip-ansi "^4.0.0"
+ through "^2.3.6"
+
+is-callable@^1.1.1, is-callable@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2"
-iconv-lite@~0.4.13:
- version "0.4.18"
- resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.18.tgz#23d8656b16aae6742ac29732ea8f0336a4789cf2"
+is-date-object@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"
-inflection@~1.10.0:
- version "1.10.0"
- resolved "https://registry.npmjs.org/inflection/-/inflection-1.10.0.tgz#5bffcb1197ad3e81050f8e17e21668087ee9eb2f"
+is-fullwidth-code-point@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
-inflection@~1.3.0:
- version "1.3.8"
- resolved "https://registry.npmjs.org/inflection/-/inflection-1.3.8.tgz#cbd160da9f75b14c3cc63578d4f396784bf3014e"
+is-generator-function@^1.0.3:
+ version "1.0.7"
+ resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.7.tgz#d2132e529bb0000a7f80794d4bdf5cd5e5813522"
-inherits@2.0.3, inherits@~2.0.1, inherits@~2.0.3:
- version "2.0.3"
- resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
+is-path-cwd@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d"
-ip@1.0.1:
+is-path-in-cwd@^1.0.0:
version "1.0.1"
- resolved "https://registry.npmjs.org/ip/-/ip-1.0.1.tgz#c7e356cdea225ae71b36d70f2e71a92ba4e42590"
+ resolved "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52"
+ dependencies:
+ is-path-inside "^1.0.0"
-ip@^1.1.2, ip@^1.1.4:
- version "1.1.5"
- resolved "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a"
+is-path-inside@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036"
+ dependencies:
+ path-is-inside "^1.0.1"
-ipaddr.js@1.5.2:
- version "1.5.2"
- resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.5.2.tgz#d4b505bde9946987ccf0fc58d9010ff9607e3fa0"
+is-promise@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
-is-my-json-valid@^2.12.4:
- version "2.17.1"
- resolved "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.17.1.tgz#3da98914a70a22f0a8563ef1511a246c6fc55471"
+is-regex@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491"
dependencies:
- generate-function "^2.0.0"
- generate-object-property "^1.1.0"
- jsonpointer "^4.0.0"
- xtend "^4.0.0"
+ has "^1.0.1"
-is-property@^1.0.0:
- version "1.0.2"
- resolved "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84"
+is-resolvable@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88"
-is-stream@^1.0.1, is-stream@^1.1.0:
+is-stream@^1.1.0:
version "1.1.0"
resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
-is-typedarray@~1.0.0:
- version "1.0.0"
- resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
+is-symbol@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572"
isarray@0.0.1:
version "0.0.1"
@@ -690,150 +729,167 @@ isarray@~1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
-isstream@~0.1.2:
- version "0.1.2"
- resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
+isexe@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
-jsbn@~0.1.0:
- version "0.1.1"
- resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
+jest-docblock@^21.0.0:
+ version "21.2.0"
+ resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-21.2.0.tgz#51529c3b30d5fd159da60c27ceedc195faf8d414"
-json-schema-traverse@^0.3.0:
- version "0.3.1"
- resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"
+js-tokens@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
-json-schema@0.2.3:
- version "0.2.3"
- resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
+js-yaml@^3.11.0:
+ version "3.12.0"
+ resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1"
+ dependencies:
+ argparse "^1.0.7"
+ esprima "^4.0.0"
-json-stringify-safe@5.0.x, json-stringify-safe@~5.0.1:
- version "5.0.1"
- resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
+json-schema-traverse@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
-jsonpointer@^4.0.0:
- version "4.0.1"
- resolved "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9"
+json-stable-stringify-without-jsonify@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
-jsprim@^1.2.2:
- version "1.4.1"
- resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
- dependencies:
- assert-plus "1.0.0"
- extsprintf "1.3.0"
- json-schema "0.2.3"
- verror "1.10.0"
+kareem@2.2.1:
+ version "2.2.1"
+ resolved "https://registry.npmjs.org/kareem/-/kareem-2.2.1.tgz#9950809415aa3cde62ab43b4f7b919d99816e015"
-kareem@1.5.0:
- version "1.5.0"
- resolved "https://registry.npmjs.org/kareem/-/kareem-1.5.0.tgz#e3e4101d9dcfde299769daf4b4db64d895d17448"
+keygrip@~1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/keygrip/-/keygrip-1.0.2.tgz#ad3297c557069dea8bcfe7a4fa491b75c5ddeb91"
-levn@~0.3.0:
- version "0.3.0"
- resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
+koa-bodyparser@4.2.1:
+ version "4.2.1"
+ resolved "https://registry.npmjs.org/koa-bodyparser/-/koa-bodyparser-4.2.1.tgz#4d7dacb5e6db1106649b595d9e5ccb158b6f3b29"
dependencies:
- prelude-ls "~1.1.2"
- type-check "~0.3.2"
-
-libbase64@0.1.0:
- version "0.1.0"
- resolved "https://registry.npmjs.org/libbase64/-/libbase64-0.1.0.tgz#62351a839563ac5ff5bd26f12f60e9830bb751e6"
+ co-body "^6.0.0"
+ copy-to "^2.0.1"
-libmime@3.0.0:
- version "3.0.0"
- resolved "https://registry.npmjs.org/libmime/-/libmime-3.0.0.tgz#51a1a9e7448ecbd32cda54421675bb21bc093da6"
+koa-compose@^3.0.0:
+ version "3.2.1"
+ resolved "https://registry.npmjs.org/koa-compose/-/koa-compose-3.2.1.tgz#a85ccb40b7d986d8e5a345b3a1ace8eabcf54de7"
dependencies:
- iconv-lite "0.4.15"
- libbase64 "0.1.0"
- libqp "1.1.0"
+ any-promise "^1.1.0"
-libqp@1.1.0:
- version "1.1.0"
- resolved "https://registry.npmjs.org/libqp/-/libqp-1.1.0.tgz#f5e6e06ad74b794fb5b5b66988bf728ef1dedbe8"
+koa-compose@^4.0.0:
+ version "4.1.0"
+ resolved "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz#507306b9371901db41121c812e923d0d67d3e877"
-lodash.get@4.4.2:
- version "4.4.2"
- resolved "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
+koa-convert@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/koa-convert/-/koa-convert-1.2.0.tgz#da40875df49de0539098d1700b50820cebcd21d0"
+ dependencies:
+ co "^4.6.0"
+ koa-compose "^3.0.0"
-lodash@^4.0.0, lodash@^4.14.0, lodash@^4.15.0:
- version "4.17.4"
- resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
+koa-is-json@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/koa-is-json/-/koa-is-json-1.0.0.tgz#273c07edcdcb8df6a2c1ab7d59ee76491451ec14"
-log4js@2.4.1:
- version "2.4.1"
- resolved "https://registry.npmjs.org/log4js/-/log4js-2.4.1.tgz#b0c4e88133e0e3056afdc6f91f7f377576158778"
+koa-router@7.4.0:
+ version "7.4.0"
+ resolved "https://registry.npmjs.org/koa-router/-/koa-router-7.4.0.tgz#aee1f7adc02d5cb31d7d67465c9eacc825e8c5e0"
dependencies:
- circular-json "^0.4.0"
- date-format "^1.2.0"
debug "^3.1.0"
- semver "^5.3.0"
- streamroller "^0.7.0"
- optionalDependencies:
- axios "^0.15.3"
- hipchat-notifier "^1.1.0"
- loggly "^1.1.0"
- mailgun-js "^0.7.0"
- nodemailer "^2.5.0"
- redis "^2.7.1"
- slack-node "~0.2.0"
-
-loggly@^1.1.0:
- version "1.1.1"
- resolved "https://registry.npmjs.org/loggly/-/loggly-1.1.1.tgz#0a0fc1d3fa3a5ec44fdc7b897beba2a4695cebee"
+ http-errors "^1.3.1"
+ koa-compose "^3.0.0"
+ methods "^1.0.1"
+ path-to-regexp "^1.1.1"
+ urijs "^1.19.0"
+
+koa@2.5.1:
+ version "2.5.1"
+ resolved "https://registry.npmjs.org/koa/-/koa-2.5.1.tgz#79f8b95f8d72d04fe9a58a8da5ebd6d341103f9c"
+ dependencies:
+ accepts "^1.2.2"
+ content-disposition "~0.5.0"
+ content-type "^1.0.0"
+ cookies "~0.7.0"
+ debug "*"
+ delegates "^1.0.0"
+ depd "^1.1.0"
+ destroy "^1.0.3"
+ error-inject "~1.0.0"
+ escape-html "~1.0.1"
+ fresh "^0.5.2"
+ http-assert "^1.1.0"
+ http-errors "^1.2.8"
+ is-generator-function "^1.0.3"
+ koa-compose "^4.0.0"
+ koa-convert "^1.2.0"
+ koa-is-json "^1.0.0"
+ mime-types "^2.0.7"
+ on-finished "^2.1.0"
+ only "0.0.2"
+ parseurl "^1.3.0"
+ statuses "^1.2.0"
+ type-is "^1.5.5"
+ vary "^1.0.0"
+
+kuler@0.0.x:
+ version "0.0.0"
+ resolved "https://registry.npmjs.org/kuler/-/kuler-0.0.0.tgz#b66bb46b934e550f59d818848e0abba4f7f5553c"
+ dependencies:
+ colornames "0.0.2"
+
+levn@^0.3.0, levn@~0.3.0:
+ version "0.3.0"
+ resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
dependencies:
- json-stringify-safe "5.0.x"
- request "2.75.x"
- timespan "2.3.x"
+ prelude-ls "~1.1.2"
+ type-check "~0.3.2"
-lru-cache@~2.6.5:
- version "2.6.5"
- resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.5.tgz#e56d6354148ede8d7707b58d143220fd08df0fd5"
+lodash.get@4.4.2:
+ version "4.4.2"
+ resolved "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
-mailcomposer@4.0.1:
- version "4.0.1"
- resolved "https://registry.npmjs.org/mailcomposer/-/mailcomposer-4.0.1.tgz#0e1c44b2a07cf740ee17dc149ba009f19cadfeb4"
- dependencies:
- buildmail "4.0.1"
- libmime "3.0.0"
+lodash@^4.17.10, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.3.0:
+ version "4.17.10"
+ resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7"
-mailgun-js@^0.7.0:
- version "0.7.15"
- resolved "https://registry.npmjs.org/mailgun-js/-/mailgun-js-0.7.15.tgz#ee366a20dac64c3c15c03d6c1b3e0ed795252abb"
+logform@^1.9.0:
+ version "1.9.1"
+ resolved "https://registry.npmjs.org/logform/-/logform-1.9.1.tgz#58b29d7b11c332456d7a217e17b48a13ad69d60a"
dependencies:
- async "~2.1.2"
- debug "~2.2.0"
- form-data "~2.1.1"
- inflection "~1.10.0"
- is-stream "^1.1.0"
- path-proxy "~1.0.0"
- proxy-agent "~2.0.0"
- q "~1.4.0"
- tsscmp "~1.0.0"
+ colors "^1.2.1"
+ fast-safe-stringify "^2.0.4"
+ fecha "^2.3.3"
+ ms "^2.1.1"
+ triple-beam "^1.2.0"
media-typer@0.3.0:
version "0.3.0"
resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
-merge-descriptors@1.0.1:
- version "1.0.1"
- resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
-
-methods@~1.1.2:
+methods@^1.0.1:
version "1.1.2"
resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
-mime-db@~1.30.0:
- version "1.30.0"
- resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01"
+mime-db@~1.33.0:
+ version "1.33.0"
+ resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db"
-mime-types@^2.1.11, mime-types@^2.1.12, mime-types@~2.1.15, mime-types@~2.1.16, mime-types@~2.1.17, mime-types@~2.1.7:
- version "2.1.17"
- resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a"
+mime-types@^2.0.7, mime-types@~2.1.18:
+ version "2.1.18"
+ resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8"
dependencies:
- mime-db "~1.30.0"
+ mime-db "~1.33.0"
-mime@1.4.1:
- version "1.4.1"
- resolved "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6"
+mimic-fn@^1.0.0:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
+
+minimatch@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
+ dependencies:
+ brace-expansion "^1.1.7"
minimist@0.0.8:
version "0.0.8"
@@ -845,147 +901,111 @@ mkdirp@^0.5.1:
dependencies:
minimist "0.0.8"
-mongodb-core@2.1.18:
- version "2.1.18"
- resolved "https://registry.npmjs.org/mongodb-core/-/mongodb-core-2.1.18.tgz#4c46139bdf3a1f032ded91db49f38eec01659050"
+mongodb-core@3.0.9:
+ version "3.0.9"
+ resolved "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.0.9.tgz#8327410c88811013fb3e4ac7c4c670f324349be1"
dependencies:
bson "~1.0.4"
- require_optional "~1.0.0"
+ require_optional "^1.0.1"
-mongodb@2.2.34:
- version "2.2.34"
- resolved "https://registry.npmjs.org/mongodb/-/mongodb-2.2.34.tgz#a34f59bbeb61754aec432de72c3fe21526a44c1a"
+mongodb@3.0.10:
+ version "3.0.10"
+ resolved "https://registry.npmjs.org/mongodb/-/mongodb-3.0.10.tgz#f948cb9595adcbfcad7444f6b24a040b653b23e8"
dependencies:
- es6-promise "3.2.1"
- mongodb-core "2.1.18"
- readable-stream "2.2.7"
+ mongodb-core "3.0.9"
+
+mongoose-legacy-pluralize@1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz#3ba9f91fa507b5186d399fb40854bff18fb563e4"
-mongoose@4.13.9:
- version "4.13.9"
- resolved "https://registry.npmjs.org/mongoose/-/mongoose-4.13.9.tgz#ca4d99aed6e36e87854c2295387e7ea17966cfe3"
+mongoose@5.1.7:
+ version "5.1.7"
+ resolved "https://registry.npmjs.org/mongoose/-/mongoose-5.1.7.tgz#b13463278cc455b3e19031b96cde9c2010095f6c"
dependencies:
- async "2.1.4"
- bson "~1.0.4"
- hooks-fixed "2.0.2"
- kareem "1.5.0"
+ async "2.6.1"
+ bson "~1.0.5"
+ kareem "2.2.1"
lodash.get "4.4.2"
- mongodb "2.2.34"
- mpath "0.3.0"
- mpromise "0.5.5"
- mquery "2.3.3"
+ mongodb "3.0.10"
+ mongoose-legacy-pluralize "1.0.2"
+ mpath "0.4.1"
+ mquery "3.0.0"
ms "2.0.0"
- muri "1.3.0"
regexp-clone "0.0.1"
sliced "1.0.1"
-mpath@0.3.0:
- version "0.3.0"
- resolved "https://registry.npmjs.org/mpath/-/mpath-0.3.0.tgz#7a58f789e9b5fd3c94520634157960f26bd5ef44"
-
-mpromise@0.5.5:
- version "0.5.5"
- resolved "https://registry.npmjs.org/mpromise/-/mpromise-0.5.5.tgz#f5b24259d763acc2257b0a0c8c6d866fd51732e6"
+mpath@0.4.1:
+ version "0.4.1"
+ resolved "https://registry.npmjs.org/mpath/-/mpath-0.4.1.tgz#ed10388430380bf7bbb5be1391e5d6969cb08e89"
-mquery@2.3.3:
- version "2.3.3"
- resolved "https://registry.npmjs.org/mquery/-/mquery-2.3.3.tgz#221412e5d4e7290ca5582dd16ea8f190a506b518"
+mquery@3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/mquery/-/mquery-3.0.0.tgz#e5f387dbabc0b9b69859e550e810faabe0ceabb0"
dependencies:
bluebird "3.5.0"
debug "2.6.9"
regexp-clone "0.0.1"
sliced "0.0.5"
-ms@0.7.1:
- version "0.7.1"
- resolved "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098"
-
ms@2.0.0:
version "2.0.0"
resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
-muri@1.3.0:
- version "1.3.0"
- resolved "https://registry.npmjs.org/muri/-/muri-1.3.0.tgz#aeccf3db64c56aa7c5b34e00f95b7878527a4721"
+ms@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
+
+mute-stream@0.0.7:
+ version "0.0.7"
+ resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
+
+natural-compare@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
negotiator@0.6.1:
version "0.6.1"
resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9"
-netmask@~1.0.4:
- version "1.0.6"
- resolved "https://registry.npmjs.org/netmask/-/netmask-1.0.6.tgz#20297e89d86f6f6400f250d9f4f6b4c1945fcd35"
-
-node-fetch@1.7.3:
- version "1.7.3"
- resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef"
- dependencies:
- encoding "^0.1.11"
- is-stream "^1.0.1"
-
-node-uuid@~1.4.7:
- version "1.4.8"
- resolved "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907"
-
-nodemailer-direct-transport@3.3.2:
- version "3.3.2"
- resolved "https://registry.npmjs.org/nodemailer-direct-transport/-/nodemailer-direct-transport-3.3.2.tgz#e96fafb90358560947e569017d97e60738a50a86"
- dependencies:
- nodemailer-shared "1.1.0"
- smtp-connection "2.12.0"
+nice-try@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.4.tgz#d93962f6c52f2c1558c0fbda6d512819f1efe1c4"
-nodemailer-fetch@1.6.0:
- version "1.6.0"
- resolved "https://registry.npmjs.org/nodemailer-fetch/-/nodemailer-fetch-1.6.0.tgz#79c4908a1c0f5f375b73fe888da9828f6dc963a4"
+object-assign@^4.0.1:
+ version "4.1.1"
+ resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
-nodemailer-shared@1.1.0:
- version "1.1.0"
- resolved "https://registry.npmjs.org/nodemailer-shared/-/nodemailer-shared-1.1.0.tgz#cf5994e2fd268d00f5cf0fa767a08169edb07ec0"
- dependencies:
- nodemailer-fetch "1.6.0"
+object-keys@^1.0.8:
+ version "1.0.12"
+ resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2"
-nodemailer-smtp-pool@2.8.2:
- version "2.8.2"
- resolved "https://registry.npmjs.org/nodemailer-smtp-pool/-/nodemailer-smtp-pool-2.8.2.tgz#2eb94d6cf85780b1b4725ce853b9cbd5e8da8c72"
+on-finished@^2.1.0:
+ version "2.3.0"
+ resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
dependencies:
- nodemailer-shared "1.1.0"
- nodemailer-wellknown "0.1.10"
- smtp-connection "2.12.0"
+ ee-first "1.1.1"
-nodemailer-smtp-transport@2.7.2:
- version "2.7.2"
- resolved "https://registry.npmjs.org/nodemailer-smtp-transport/-/nodemailer-smtp-transport-2.7.2.tgz#03d71c76314f14ac7dbc7bf033a6a6d16d67fb77"
+once@^1.3.0:
+ version "1.4.0"
+ resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
dependencies:
- nodemailer-shared "1.1.0"
- nodemailer-wellknown "0.1.10"
- smtp-connection "2.12.0"
+ wrappy "1"
-nodemailer-wellknown@0.1.10:
- version "0.1.10"
- resolved "https://registry.npmjs.org/nodemailer-wellknown/-/nodemailer-wellknown-0.1.10.tgz#586db8101db30cb4438eb546737a41aad0cf13d5"
+one-time@0.0.4:
+ version "0.0.4"
+ resolved "https://registry.npmjs.org/one-time/-/one-time-0.0.4.tgz#f8cdf77884826fe4dff93e3a9cc37b1e4480742e"
-nodemailer@^2.5.0:
- version "2.7.2"
- resolved "https://registry.npmjs.org/nodemailer/-/nodemailer-2.7.2.tgz#f242e649aeeae39b6c7ed740ef7b061c404d30f9"
+onetime@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
dependencies:
- libmime "3.0.0"
- mailcomposer "4.0.1"
- nodemailer-direct-transport "3.3.2"
- nodemailer-shared "1.1.0"
- nodemailer-smtp-pool "2.8.2"
- nodemailer-smtp-transport "2.7.2"
- socks "1.1.9"
-
-oauth-sign@~0.8.1, oauth-sign@~0.8.2:
- version "0.8.2"
- resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
+ mimic-fn "^1.0.0"
-on-finished@~2.3.0:
- version "2.3.0"
- resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
- dependencies:
- ee-first "1.1.1"
+only@0.0.2:
+ version "0.0.2"
+ resolved "https://registry.npmjs.org/only/-/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4"
-optionator@^0.8.1:
+optionator@^0.8.2:
version "0.8.2"
resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64"
dependencies:
@@ -996,47 +1016,35 @@ optionator@^0.8.1:
type-check "~0.3.2"
wordwrap "~1.0.0"
-pac-proxy-agent@1:
- version "1.1.0"
- resolved "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-1.1.0.tgz#34a385dfdf61d2f0ecace08858c745d3e791fd4d"
- dependencies:
- agent-base "2"
- debug "2"
- extend "3"
- get-uri "2"
- http-proxy-agent "1"
- https-proxy-agent "1"
- pac-resolver "~2.0.0"
- raw-body "2"
- socks-proxy-agent "2"
-
-pac-resolver@~2.0.0:
- version "2.0.0"
- resolved "https://registry.npmjs.org/pac-resolver/-/pac-resolver-2.0.0.tgz#99b88d2f193fbdeefc1c9a529c1f3260ab5277cd"
- dependencies:
- co "~3.0.6"
- degenerator "~1.0.2"
- ip "1.0.1"
- netmask "~1.0.4"
- thunkify "~2.1.1"
+os-tmpdir@~1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
-parseurl@~1.3.2:
+parseurl@^1.3.0:
version "1.3.2"
resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3"
-path-proxy@~1.0.0:
- version "1.0.0"
- resolved "https://registry.npmjs.org/path-proxy/-/path-proxy-1.0.0.tgz#18e8a36859fc9d2f1a53b48dee138543c020de5e"
- dependencies:
- inflection "~1.3.0"
+path-is-absolute@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
-path-to-regexp@0.1.7:
- version "0.1.7"
- resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
+path-is-inside@^1.0.1, path-is-inside@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
-performance-now@^2.1.0:
- version "2.1.0"
- resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
+path-key@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
+
+path-to-regexp@^1.1.1:
+ version "1.7.0"
+ resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d"
+ dependencies:
+ isarray "0.0.1"
+
+pify@^2.0.0:
+ version "2.3.0"
+ resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
pinkie-promise@^2.0.0:
version "2.0.1"
@@ -1048,105 +1056,49 @@ pinkie@^2.0.0:
version "2.0.4"
resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
+pluralize@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777"
+
prelude-ls@~1.1.2:
version "1.1.2"
resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
-process-nextick-args@~1.0.6:
- version "1.0.7"
- resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
-
-proxy-addr@~2.0.2:
- version "2.0.2"
- resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz#6571504f47bb988ec8180253f85dd7e14952bdec"
- dependencies:
- forwarded "~0.1.2"
- ipaddr.js "1.5.2"
+process-nextick-args@~2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa"
-proxy-agent@~2.0.0:
+progress@^2.0.0:
version "2.0.0"
- resolved "https://registry.npmjs.org/proxy-agent/-/proxy-agent-2.0.0.tgz#57eb5347aa805d74ec681cb25649dba39c933499"
- dependencies:
- agent-base "2"
- debug "2"
- extend "3"
- http-proxy-agent "1"
- https-proxy-agent "1"
- lru-cache "~2.6.5"
- pac-proxy-agent "1"
- socks-proxy-agent "2"
-
-punycode@1.4.1, punycode@^1.4.1:
- version "1.4.1"
- resolved "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
-
-q@~1.4.0:
- version "1.4.1"
- resolved "https://registry.npmjs.org/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e"
-
-qs@6.5.1, qs@~6.5.1:
- version "6.5.1"
- resolved "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"
-
-qs@~6.2.0:
- version "6.2.3"
- resolved "https://registry.npmjs.org/qs/-/qs-6.2.3.tgz#1cfcb25c10a9b2b483053ff39f5dfc9233908cfe"
-
-range-parser@~1.2.0:
- version "1.2.0"
- resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e"
+ resolved "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f"
+
+punycode@^2.1.0:
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
-raw-body@2, raw-body@2.3.2:
- version "2.3.2"
- resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89"
+qs@^6.5.2:
+ version "6.5.2"
+ resolved "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
+
+raw-body@^2.3.3:
+ version "2.3.3"
+ resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz#1b324ece6b5706e153855bc1148c65bb7f6ea0c3"
dependencies:
bytes "3.0.0"
- http-errors "1.6.2"
- iconv-lite "0.4.19"
+ http-errors "1.6.3"
+ iconv-lite "0.4.23"
unpipe "1.0.0"
-readable-stream@1.1.x:
- version "1.1.14"
- resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9"
- dependencies:
- core-util-is "~1.0.0"
- inherits "~2.0.1"
- isarray "0.0.1"
- string_decoder "~0.10.x"
-
-readable-stream@2, readable-stream@^2.3.0:
- version "2.3.3"
- resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c"
+readable-stream@^2.3.6:
+ version "2.3.6"
+ resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
dependencies:
core-util-is "~1.0.0"
inherits "~2.0.3"
isarray "~1.0.0"
- process-nextick-args "~1.0.6"
+ process-nextick-args "~2.0.0"
safe-buffer "~5.1.1"
- string_decoder "~1.0.3"
- util-deprecate "~1.0.1"
-
-readable-stream@2.2.7:
- version "2.2.7"
- resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.7.tgz#07057acbe2467b22042d36f98c5ad507054e95b1"
- dependencies:
- buffer-shims "~1.0.0"
- core-util-is "~1.0.0"
- inherits "~2.0.1"
- isarray "~1.0.0"
- process-nextick-args "~1.0.6"
- string_decoder "~1.0.0"
- util-deprecate "~1.0.1"
-
-readable-stream@~2.0.5:
- version "2.0.6"
- resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e"
- dependencies:
- core-util-is "~1.0.0"
- inherits "~2.0.1"
- isarray "~1.0.0"
- process-nextick-args "~1.0.6"
- string_decoder "~0.10.x"
+ string_decoder "~1.1.1"
util-deprecate "~1.0.1"
redis-commands@^1.2.0:
@@ -1157,7 +1109,7 @@ redis-parser@^2.6.0:
version "2.6.0"
resolved "https://registry.npmjs.org/redis-parser/-/redis-parser-2.6.0.tgz#52ed09dacac108f1a631c07e9b69941e7a19504b"
-redis@2.8.0, redis@^2.7.1:
+redis@2.8.0:
version "2.8.0"
resolved "https://registry.npmjs.org/redis/-/redis-2.8.0.tgz#202288e3f58c49f6079d97af7a10e1303ae14b02"
dependencies:
@@ -1169,135 +1121,106 @@ regexp-clone@0.0.1:
version "0.0.1"
resolved "https://registry.npmjs.org/regexp-clone/-/regexp-clone-0.0.1.tgz#a7c2e09891fdbf38fbb10d376fb73003e68ac589"
-request@2.75.x:
- version "2.75.0"
- resolved "https://registry.npmjs.org/request/-/request-2.75.0.tgz#d2b8268a286da13eaa5d01adf5d18cc90f657d93"
- dependencies:
- aws-sign2 "~0.6.0"
- aws4 "^1.2.1"
- bl "~1.1.2"
- caseless "~0.11.0"
- combined-stream "~1.0.5"
- extend "~3.0.0"
- forever-agent "~0.6.1"
- form-data "~2.0.0"
- 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"
- node-uuid "~1.4.7"
- oauth-sign "~0.8.1"
- qs "~6.2.0"
- stringstream "~0.0.4"
- tough-cookie "~2.3.0"
- tunnel-agent "~0.4.1"
-
-request@^2.0.0, request@^2.74.0:
- version "2.83.0"
- resolved "https://registry.npmjs.org/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356"
- dependencies:
- aws-sign2 "~0.7.0"
- aws4 "^1.6.0"
- caseless "~0.12.0"
- combined-stream "~1.0.5"
- extend "~3.0.1"
- forever-agent "~0.6.1"
- form-data "~2.3.1"
- har-validator "~5.0.3"
- hawk "~6.0.2"
- http-signature "~1.2.0"
- is-typedarray "~1.0.0"
- isstream "~0.1.2"
- json-stringify-safe "~5.0.1"
- mime-types "~2.1.17"
- oauth-sign "~0.8.2"
- performance-now "^2.1.0"
- qs "~6.5.1"
- safe-buffer "^5.1.1"
- stringstream "~0.0.5"
- tough-cookie "~2.3.3"
- tunnel-agent "^0.6.0"
- uuid "^3.1.0"
-
-requestretry@^1.2.2:
- version "1.12.2"
- resolved "https://registry.npmjs.org/requestretry/-/requestretry-1.12.2.tgz#13ce38a4ce4e809f3c9ec6d4ca3b7b9ba4acf26c"
- dependencies:
- extend "^3.0.0"
- lodash "^4.15.0"
- request "^2.74.0"
- when "^3.7.7"
-
-require_optional@~1.0.0:
+regexp.prototype.flags@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz#6b30724e306a27833eeb171b66ac8890ba37e41c"
+ dependencies:
+ define-properties "^1.1.2"
+
+regexpp@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz#0e3516dd0b7904f413d2d4193dce4618c3a689ab"
+
+require-uncached@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3"
+ dependencies:
+ caller-path "^0.1.0"
+ resolve-from "^1.0.0"
+
+require_optional@^1.0.1:
version "1.0.1"
resolved "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz#4cf35a4247f64ca3df8c2ef208cc494b1ca8fc2e"
dependencies:
resolve-from "^2.0.0"
semver "^5.1.0"
+resolve-from@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226"
+
resolve-from@^2.0.0:
version "2.0.0"
resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57"
-safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
+restore-cursor@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
+ dependencies:
+ onetime "^2.0.0"
+ signal-exit "^3.0.2"
+
+rimraf@^2.2.8:
+ version "2.6.2"
+ resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
+ dependencies:
+ glob "^7.0.5"
+
+run-async@^2.2.0:
+ version "2.3.0"
+ resolved "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0"
+ dependencies:
+ is-promise "^2.1.0"
+
+rxjs@^5.5.2:
+ version "5.5.11"
+ resolved "https://registry.npmjs.org/rxjs/-/rxjs-5.5.11.tgz#f733027ca43e3bec6b994473be4ab98ad43ced87"
+ dependencies:
+ symbol-observable "1.0.1"
+
+safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.1"
resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
+"safer-buffer@>= 2.1.2 < 3":
+ version "2.1.2"
+ resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
+
sax@>=0.6.0:
version "1.2.4"
resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
-semver@^5.1.0, semver@^5.3.0:
+semver@^5.1.0:
version "5.4.1"
resolved "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e"
-semver@~5.0.1:
- version "5.0.3"
- resolved "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz#77466de589cd5d3c95f138aa78bc569a3cb5d27a"
+semver@^5.5.0:
+ version "5.5.0"
+ resolved "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
-send@0.16.1:
- version "0.16.1"
- resolved "https://registry.npmjs.org/send/-/send-0.16.1.tgz#a70e1ca21d1382c11d0d9f6231deb281080d7ab3"
- dependencies:
- debug "2.6.9"
- depd "~1.1.1"
- destroy "~1.0.4"
- encodeurl "~1.0.1"
- escape-html "~1.0.3"
- etag "~1.8.1"
- fresh "0.5.2"
- http-errors "~1.6.2"
- mime "1.4.1"
- ms "2.0.0"
- on-finished "~2.3.0"
- range-parser "~1.2.0"
- statuses "~1.3.1"
+setprototypeof@1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656"
-serve-static@1.13.1:
- version "1.13.1"
- resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz#4c57d53404a761d8f2e7c1e8a18a47dbf278a719"
+shebang-command@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
dependencies:
- encodeurl "~1.0.1"
- escape-html "~1.0.3"
- parseurl "~1.3.2"
- send "0.16.1"
+ shebang-regex "^1.0.0"
-setprototypeof@1.0.3:
- version "1.0.3"
- resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04"
+shebang-regex@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
-setprototypeof@1.1.0:
- version "1.1.0"
- resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656"
+signal-exit@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
-slack-node@~0.2.0:
- version "0.2.0"
- resolved "https://registry.npmjs.org/slack-node/-/slack-node-0.2.0.tgz#de4b8dddaa8b793f61dbd2938104fdabf37dfa30"
+slice-ansi@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d"
dependencies:
- requestretry "^1.2.2"
+ is-fullwidth-code-point "^2.0.0"
sliced@0.0.5:
version "0.0.5"
@@ -1307,141 +1230,103 @@ sliced@1.0.1:
version "1.0.1"
resolved "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz#0b3a662b5d04c3177b1926bea82b03f837a2ef41"
-smart-buffer@^1.0.13, smart-buffer@^1.0.4:
- version "1.1.15"
- resolved "https://registry.npmjs.org/smart-buffer/-/smart-buffer-1.1.15.tgz#7f114b5b65fab3e2a35aa775bb12f0d1c649bf16"
-
-smtp-connection@2.12.0:
- version "2.12.0"
- resolved "https://registry.npmjs.org/smtp-connection/-/smtp-connection-2.12.0.tgz#d76ef9127cb23c2259edb1e8349c2e8d5e2d74c1"
- dependencies:
- httpntlm "1.6.1"
- nodemailer-shared "1.1.0"
+sprintf-js@~1.0.2:
+ version "1.0.3"
+ resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
-sntp@1.x.x:
- version "1.0.9"
- resolved "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198"
- dependencies:
- hoek "2.x.x"
+stack-trace@0.0.x:
+ version "0.0.10"
+ resolved "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0"
-sntp@2.x.x:
- version "2.1.0"
- resolved "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8"
- dependencies:
- hoek "4.x.x"
+"statuses@>= 1.4.0 < 2", statuses@^1.2.0:
+ version "1.5.0"
+ resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
-socks-proxy-agent@2:
+string-width@^2.1.0, string-width@^2.1.1:
version "2.1.1"
- resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-2.1.1.tgz#86ebb07193258637870e13b7bd99f26c663df3d3"
+ resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
dependencies:
- agent-base "2"
- extend "3"
- socks "~1.1.5"
+ is-fullwidth-code-point "^2.0.0"
+ strip-ansi "^4.0.0"
-socks@1.1.9:
- version "1.1.9"
- resolved "https://registry.npmjs.org/socks/-/socks-1.1.9.tgz#628d7e4d04912435445ac0b6e459376cb3e6d691"
- dependencies:
- ip "^1.1.2"
- smart-buffer "^1.0.4"
-
-socks@~1.1.5:
- version "1.1.10"
- resolved "https://registry.npmjs.org/socks/-/socks-1.1.10.tgz#5b8b7fc7c8f341c53ed056e929b7bf4de8ba7b5a"
- dependencies:
- ip "^1.1.4"
- smart-buffer "^1.0.13"
-
-source-map@~0.5.6:
- version "0.5.7"
- resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
-
-sshpk@^1.7.0:
- version "1.13.1"
- resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3"
- dependencies:
- asn1 "~0.2.3"
- assert-plus "^1.0.0"
- dashdash "^1.12.0"
- getpass "^0.1.1"
- optionalDependencies:
- bcrypt-pbkdf "^1.0.0"
- ecc-jsbn "~0.1.1"
- jsbn "~0.1.0"
- tweetnacl "~0.14.0"
-
-"statuses@>= 1.3.1 < 2":
- version "1.4.0"
- resolved "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087"
-
-statuses@~1.3.1:
- version "1.3.1"
- resolved "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e"
-
-streamroller@^0.7.0:
- version "0.7.0"
- resolved "https://registry.npmjs.org/streamroller/-/streamroller-0.7.0.tgz#a1d1b7cf83d39afb0d63049a5acbf93493bdf64b"
+string.prototype.matchall@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-2.0.0.tgz#2af8fe3d2d6dc53ca2a59bd376b089c3c152b3c8"
dependencies:
- date-format "^1.2.0"
- debug "^3.1.0"
- mkdirp "^0.5.1"
- readable-stream "^2.3.0"
+ define-properties "^1.1.2"
+ es-abstract "^1.10.0"
+ function-bind "^1.1.1"
+ has-symbols "^1.0.0"
+ regexp.prototype.flags "^1.2.0"
-string_decoder@~0.10.x:
- version "0.10.31"
- resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
-
-string_decoder@~1.0.0, string_decoder@~1.0.3:
- version "1.0.3"
- resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab"
+string_decoder@~1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
dependencies:
safe-buffer "~5.1.0"
-stringstream@~0.0.4, stringstream@~0.0.5:
- version "0.0.5"
- resolved "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878"
-
strip-ansi@^3.0.0:
version "3.0.1"
resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
dependencies:
ansi-regex "^2.0.0"
+strip-ansi@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
+ dependencies:
+ ansi-regex "^3.0.0"
+
+strip-json-comments@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
+
supports-color@^2.0.0:
version "2.0.0"
resolved "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
-thunkify@~2.1.1:
- version "2.1.2"
- resolved "https://registry.npmjs.org/thunkify/-/thunkify-2.1.2.tgz#faa0e9d230c51acc95ca13a361ac05ca7e04553d"
+supports-color@^5.3.0:
+ version "5.4.0"
+ resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54"
+ dependencies:
+ has-flag "^3.0.0"
-timespan@2.3.x:
- version "2.3.0"
- resolved "https://registry.npmjs.org/timespan/-/timespan-2.3.0.tgz#4902ce040bd13d845c8f59b27e9d59bad6f39929"
+symbol-observable@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4"
-tough-cookie@~2.3.0, tough-cookie@~2.3.3:
- version "2.3.3"
- resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561"
+table@^4.0.3:
+ version "4.0.3"
+ resolved "https://registry.npmjs.org/table/-/table-4.0.3.tgz#00b5e2b602f1794b9acaf9ca908a76386a7813bc"
dependencies:
- punycode "^1.4.1"
+ ajv "^6.0.1"
+ ajv-keywords "^3.0.0"
+ chalk "^2.1.0"
+ lodash "^4.17.4"
+ slice-ansi "1.0.0"
+ string-width "^2.1.1"
-tsscmp@~1.0.0:
- version "1.0.5"
- resolved "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.5.tgz#7dc4a33af71581ab4337da91d85ca5427ebd9a97"
+text-hex@0.0.x:
+ version "0.0.0"
+ resolved "https://registry.npmjs.org/text-hex/-/text-hex-0.0.0.tgz#578fbc85a6a92636e42dd17b41d0218cce9eb2b3"
-tunnel-agent@^0.6.0:
- version "0.6.0"
- resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
- dependencies:
- safe-buffer "^5.0.1"
+text-table@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
-tunnel-agent@~0.4.1:
- version "0.4.3"
- resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb"
+through@^2.3.6:
+ version "2.3.8"
+ resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
-tweetnacl@^0.14.3, tweetnacl@~0.14.0:
- version "0.14.5"
- resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
+tmp@^0.0.33:
+ version "0.0.33"
+ resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
+ dependencies:
+ os-tmpdir "~1.0.2"
+
+triple-beam@^1.2.0, triple-beam@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz#a595214c7298db8339eeeee083e4d10bd8cb8dd9"
type-check@~0.3.2:
version "0.3.2"
@@ -1449,53 +1334,76 @@ type-check@~0.3.2:
dependencies:
prelude-ls "~1.1.2"
-type-is@~1.6.15:
- version "1.6.15"
- resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz#cab10fb4909e441c82842eafe1ad646c81804410"
+type-is@^1.5.5, type-is@^1.6.16:
+ version "1.6.16"
+ resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194"
dependencies:
media-typer "0.3.0"
- mime-types "~2.1.15"
+ mime-types "~2.1.18"
-underscore@~1.7.0:
- version "1.7.0"
- resolved "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz#6bbaf0877500d36be34ecaa584e0db9fef035209"
-
-unpipe@1.0.0, unpipe@~1.0.0:
+unpipe@1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
+uri-js@^4.2.1:
+ version "4.2.2"
+ resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0"
+ dependencies:
+ punycode "^2.1.0"
+
+urijs@^1.19.0:
+ version "1.19.1"
+ resolved "https://registry.npmjs.org/urijs/-/urijs-1.19.1.tgz#5b0ff530c0cbde8386f6342235ba5ca6e995d25a"
+
util-deprecate@~1.0.1:
version "1.0.2"
resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
-utils-merge@1.0.1:
- version "1.0.1"
- resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
-
-uuid@^3.1.0:
- version "3.1.0"
- resolved "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04"
-
-vary@~1.1.2:
+vary@^1.0.0:
version "1.1.2"
resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
-verror@1.10.0:
- version "1.10.0"
- resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
+which@^1.2.9:
+ version "1.3.1"
+ resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
dependencies:
- assert-plus "^1.0.0"
- core-util-is "1.0.2"
- extsprintf "^1.2.0"
+ isexe "^2.0.0"
-when@^3.7.7:
- version "3.7.8"
- resolved "https://registry.npmjs.org/when/-/when-3.7.8.tgz#c7130b6a7ea04693e842cdc9e7a1f2aa39a39f82"
+winston-transport@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.npmjs.org/winston-transport/-/winston-transport-4.2.0.tgz#a20be89edf2ea2ca39ba25f3e50344d73e6520e5"
+ dependencies:
+ readable-stream "^2.3.6"
+ triple-beam "^1.2.0"
+
+winston@3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/winston/-/winston-3.0.0.tgz#1f0b24a96586798bcf0cd149fb07ed47cb01a1b2"
+ dependencies:
+ async "^2.6.0"
+ diagnostics "^1.0.1"
+ is-stream "^1.1.0"
+ logform "^1.9.0"
+ one-time "0.0.4"
+ readable-stream "^2.3.6"
+ stack-trace "0.0.x"
+ triple-beam "^1.3.0"
+ winston-transport "^4.2.0"
wordwrap@~1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
+wrappy@1:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+
+write@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.npmjs.org/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757"
+ dependencies:
+ mkdirp "^0.5.1"
+
xml2js@0.4.19:
version "0.4.19"
resolved "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7"
@@ -1506,11 +1414,3 @@ xml2js@0.4.19:
xmlbuilder@~9.0.1:
version "9.0.4"
resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.4.tgz#519cb4ca686d005a8420d3496f3f0caeecca580f"
-
-xregexp@2.0.0:
- version "2.0.0"
- resolved "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz#52a63e56ca0b84a7f3a5f3d61872f126ad7a5943"
-
-xtend@^4.0.0:
- version "4.0.1"
- resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"