Merge pull request #1 from ProfessorDey/patch-4

Update to latest
This commit is contained in:
ProfessorDey 2018-02-06 01:46:31 +00:00 committed by GitHub
commit 564a5d3135
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 2121 additions and 165 deletions

21
LICENSE Normal file
View file

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2018 LBRY <filip@lbry.io>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View file

@ -1,65 +1,53 @@
'use strict';
// Load up libraries
const Discord = require("discord.js");
const Discord = require('discord.js');
// Load config!
let config = require('config');
config = config.get('bot');
var aliases;
try {
aliases = require("./alias.json");
aliases = require('./alias.json');
} catch (e) {
//No aliases defined
aliases = {
"test": {
process: function(bot,msg){
test: {
process: function(bot, msg) {
msg.channel.send('test');
}
}
};
}
}
var commands = {
};
var commands = {};
var bot = new Discord.Client();
bot.on("ready", function() {
console.log(
"Logged in! Serving in " + bot.guilds.array().length + " servers"
);
require("./plugins.js").init();
console.log("type " + config.prefix + "help in Discord for a commands list.");
bot.user.setGame(
config.prefix + "tip"
);
bot.on('ready', function() {
console.log('Logged in! Serving in ' + bot.guilds.array().length + ' servers');
require('./plugins.js').init();
console.log('type ' + config.prefix + 'help in Discord for a commands list.');
bot.user.setGame(config.prefix + 'tip');
});
bot.on("disconnected", function() {
console.log("Disconnected!");
bot.on('disconnected', function() {
console.log('Disconnected!');
process.exit(1); //exit node.js with an error
});
function checkMessageForCommand(msg, isEdit) {
//check if message is a command
if (msg.author.id != bot.user.id && msg.content.startsWith(config.prefix)) {
console.log(
"treating " + msg.content + " from " + msg.author + " as command"
);
var cmdTxt = msg.content.split(" ")[0].substring(config.prefix.length);
var suffix = msg.content.substring(
cmdTxt.length + config.prefix.length + 1
); //add one for the ! and one for the space
console.log('treating ' + msg.content + ' from ' + msg.author + ' as command');
var cmdTxt = msg.content.split(' ')[0].substring(config.prefix.length);
var suffix = msg.content.substring(cmdTxt.length + config.prefix.length + 1); //add one for the ! and one for the space
if (msg.isMentioned(bot.user)) {
try {
cmdTxt = msg.content.split(" ")[1];
suffix = msg.content.substring(
bot.user.mention().length + cmdTxt.length + config.prefix.length + 1
);
cmdTxt = msg.content.split(' ')[1];
suffix = msg.content.substring(bot.user.mention().length + cmdTxt.length + config.prefix.length + 1);
} catch (e) {
//no command
msg.channel.send("Yes?");
msg.channel.send('Yes?');
return;
}
}
@ -74,9 +62,9 @@ function checkMessageForCommand(msg, isEdit) {
try {
cmd.process(bot, msg, suffix, isEdit);
} catch (e) {
var msgTxt = "command " + cmdTxt + " failed :(";
var msgTxt = 'command ' + cmdTxt + ' failed :(';
if (config.debug) {
msgTxt += "\n" + e.stack;
msgTxt += '\n' + e.stack;
}
msg.channel.send(msgTxt);
}
@ -89,16 +77,16 @@ function checkMessageForCommand(msg, isEdit) {
}
if (msg.author != bot.user && msg.isMentioned(bot.user)) {
msg.channel.send("yes?"); //using a mention here can lead to looping
msg.channel.send('yes?'); //using a mention here can lead to looping
} else {
}
}
}
bot.on("message", msg => checkMessageForCommand(msg, false));
bot.on("messageUpdate", (oldMessage, newMessage) => {
bot.on('message', msg => checkMessageForCommand(msg, false));
/*bot.on("messageUpdate", (oldMessage, newMessage) => {
checkMessageForCommand(newMessage, true);
});
});*/
exports.addCommand = function(commandName, commandObject) {
try {
@ -113,7 +101,7 @@ exports.addCustomFunc = function(customFunc) {
} catch (err) {
console.log(err);
}
}
};
exports.commandCount = function() {
return Object.keys(commands).length;
};

View file

@ -10,32 +10,44 @@ exports.commands = [
]
exports.tip = {
usage: "<subcommand>",
description: 'balance: get your balance\n deposit: get adress for your deposits\n withdraw ADDRESS AMOUNT: withdraw AMOUNT credits to ADDRESS\n <user> <amount>: mention a user with @ and then the amount to tip them',
process: async function(bot,msg,suffix){
let tipper = msg.author.id,
words = msg.content.trim().split(' ').filter( function(n){return n !== "";} ),
subcommand = words.length >= 2 ? words[1] : 'help';
if (subcommand === 'help') {
doHelp(msg);
}
else if (subcommand === 'balance') {
doBalance(msg, tipper);
}
else if (subcommand === 'deposit') {
doDeposit(msg, tipper);
}
else if (subcommand === 'withdraw') {
doWithdraw(msg, tipper, words);
}
else {
doTip(msg, tipper, words);
description: '\t[help]\n\t\tGet this message\n\tbalance\n\t\tGet your balance\n\tdeposit\n\t\tGet address for your deposits\n\twithdraw ADDRESS AMOUNT\n\t\tWithdraw AMOUNT credits to ADDRESS\n\t[private] <user> <amount>\n\t\tMention a user with @ and then the amount to tip them, or put private before the user to tip them privately.\nKey: [] : Optionally include contained keyword, <> : Replace with appropriate value.',
process: async function (bot, msg, suffix) {
let tipper = msg.author.id.replace('!', ''),
words = msg.content.trim().split(' ').filter(function (n) { return n !== ""; }),
subcommand = words.length >= 2 ? words[1] : 'help',
helpmsgparts = [['[help]', 'Get this message'],
['balance', 'Get your balance'],
['deposit', 'Get address for your deposits'],
['withdraw ADDRESS AMOUNT', 'Withdraw AMOUNT credits to ADDRESS'],
['[private] <user> <amount>', 'Mention a user with @ and then the amount to tip them, or put private before the user to tip them privately.']],
helpmsg = '```**!tip**\n' + formatDescriptions(helpmsgparts) + 'Key: [] : Optionally include contained keyword, <> : Replace with appropriate value.```',
channelwarning = 'Please use <#369896313082478594> or DMs to talk to bots.';
switch (subcommand) {
case 'help': privateOrSandboxOnly(msg, channelwarning, doHelp, [helpmsg]); break;
case 'balance': doBalance(msg, tipper); break;
case 'deposit': privateOrSandboxOnly(msg, channelwarning, doDeposit, [tipper]); break;
case 'withdraw': privateOrSandboxOnly(msg, channelwarning, doWithdraw, [tipper, words, helpmsg]); break;
default: doTip(msg, tipper, words, helpmsg);
}
}
}
function privateOrSandboxOnly(message, wrongchannelmsg, fn, args) {
if (!inPrivateOrBotSandbox(message)) {
message.reply(wrongchannelmsg);
return;
}
fn.apply(null, [message, ...args]);
}
function doHelp(message, helpmsg) {
message.author.send(helpmsg);
}
function doBalance(message, tipper) {
lbry.getBalance(tipper, 1, function(err, balance) {
lbry.getBalance(tipper, 1, function (err, balance) {
if (err) {
message.reply('Error getting balance');
}
@ -47,11 +59,7 @@ function doBalance(message, tipper) {
function doDeposit(message, tipper) {
if(!inPrivateOrBotSandbox(message)){
message.reply('Please use <#369896313082478594> or DMs to talk to bots.');
return;
}
getAddress(tipper, function(err, address) {
getAddress(tipper, function (err, address) {
if (err) {
message.reply('Error getting deposit address');
}
@ -62,13 +70,9 @@ function doDeposit(message, tipper) {
}
function doWithdraw(message, tipper, words) {
if(!inPrivateOrBotSandbox(message)){
message.reply('Please use <#369896313082478594> or DMs to talk to bots.');
return;
}
function doWithdraw(message, tipper, words, helpmsg) {
if (words.length < 4) {
doHelp(message);
doHelp(message, helpmsg);
return;
}
@ -80,7 +84,7 @@ function doWithdraw(message, tipper, words) {
return;
}
lbry.sendFrom(tipper, address, amount, function(err, txId) {
lbry.sendFrom(tipper, address, amount, function (err, txId) {
if (err) {
message.reply(err.message);
}
@ -91,56 +95,58 @@ function doWithdraw(message, tipper, words) {
}
function doTip(message, tipper, words) {
function doTip(message, tipper, words, helpmsg) {
if (words.length < 3 || !words) {
doHelp(message);
doHelp(message, helpmsg);
return;
}
let amount = getValidatedAmount(words[2]);
let prv = 0;
let amountOffset = 2;
if (words.length >= 4 && words[1] === 'private') {
prv = 1;
amountOffset = 3;
}
let amount = getValidatedAmount(words[amountOffset]);
if (amount === null) {
message.reply('I dont know how to tip that many credits');
return;
}
if (message.mentions.members.first().id) {
let id = message.mentions.members.first().id;
sendLbc(message, tipper, id, amount);
if (message.mentions.users.first().id) {
sendLbc(message, tipper, message.mentions.users.first().id.replace('!', ''), amount, prv);
}
else
{
else {
message.reply('Sorry, I could not find a user in your tip...');
}
}
function doHelp(message) {
if(!inPrivateOrBotSandbox(message)){
message.reply('Please use <#369896313082478594> or DMs to talk to bots.');
return;
}
message.reply('Sent you help via DM!');
message.author.send('**!tip**\n !tip balance: get your balance\n !tip deposit: get adress for your deposits\n !tip withdraw ADDRESS AMOUNT: withdraw AMOUNT credits to ADDRESS\n !tip <user> <amount>: send <amount> credits to <user>');
}
function sendLbc(message, tipper, id, amount) {
getAddress(id, function(err, address){
function sendLbc(message, tipper, recipient, amount, privacyFlag) {
getAddress(recipient, function (err, address) {
if (err) {
message.reply(err.message);
}
else {
lbry.sendFrom(tipper, address, amount, 1, null, null, function(err, txId){
lbry.sendFrom(tipper, address, amount, 1, null, null, function (err, txId) {
if (err) {
message.reply(err.message);
}
else {
var imessage =
'Wubba lubba dub dub! <@' + tipper + '> tipped <@' + id + '> ' + amount + ' LBC (' + txLink(txId) + '). ' +
'Wubba lubba dub dub! <@' + tipper + '> tipped <@' + recipient + '> ' + amount + ' LBC (' + txLink(txId) + '). ' +
'DM me `!tip` for tipbot instructions.'
if (privacyFlag) {
message.author.send(imessage);
if (message.author.id != message.mentions.users.first().id) {
message.mentions.users.first().send(imessage);
}
} else {
message.reply(imessage);
}
}
});
}
});
@ -148,15 +154,15 @@ function sendLbc(message, tipper, id, amount) {
function getAddress(userId, cb) {
lbry.getAddressesByAccount(userId, function(err, addresses) {
lbry.getAddressesByAccount(userId, function (err, addresses) {
if (err) {
cb(err);
}
else if(addresses.length > 0) {
else if (addresses.length > 0) {
cb(null, addresses[0]);
}
else {
lbry.getNewAddress(userId, function(err, address) {
lbry.getNewAddress(userId, function (err, address) {
if (err) {
cb(err);
}
@ -168,18 +174,20 @@ function getAddress(userId, cb) {
});
}
function inPrivateOrBotSandbox(msg){
if((msg.channel.type == 'dm') || (msg.channel.id === '369896313082478594')){
function inPrivateOrBotSandbox(msg) {
if ((msg.channel.type == 'dm') || (msg.channel.id === '369896313082478594')) {
return true;
}else{
} else {
return false;
}
}
function getValidatedAmount(amount) {
amount = amount.trim();
if (amount.toLowerCase().endsWith('lbc')) {
amount = amount.substring(0, amount.length-3);
amount = amount.substring(0, amount.length - 3);
}
return amount.match(/^[0-9]+(\.[0-9]+)?$/) ? amount : null;
}
@ -188,3 +196,9 @@ function getValidatedAmount(amount) {
function txLink(txId) {
return "<https://explorer.lbry.io/tx/" + txId + ">";
}
function formatDescriptions(msgparts) {
return msgparts.map(elem => '\t' + elem[0] + '\n\t\t' + elem[1] + '\n')
.join('');
}

View file

@ -1,12 +1,12 @@
'use strict';
const fs = require("fs"),
path = require("path");
const fs = require('fs'),
path = require('path');
function getPlugins(srcpath) {
return fs.readdirSync(srcpath);
}
let plugin_directory = path.join(__dirname, "modules");
let plugin_directory = path.join(__dirname, 'modules');
let plugins = getPlugins(plugin_directory);
exports.init = function init() {
@ -14,7 +14,7 @@ exports.init = function init() {
};
function load_plugins() {
const dbot = require("./bot.js");
const dbot = require('./bot.js');
let commandCount = 0;
let otherFunc = 0;
for (let i = 0; i < plugins.length; i++) {
@ -25,7 +25,7 @@ function load_plugins() {
console.log(`Improper setup of the '${plugins[i]}' plugin. : ${err}`);
}
if (plugin) {
if ("commands" in plugin) {
if ('commands' in plugin) {
for (let j = 0; j < plugin.commands.length; j++) {
if (plugin.commands[j] in plugin) {
dbot.addCommand(plugin.commands[j], plugin[plugin.commands[j]]);
@ -33,7 +33,7 @@ function load_plugins() {
}
}
}
if("custom" in plugin){
if ('custom' in plugin) {
for (let j = 0; j < plugin.custom.length; j++) {
if (plugin.custom[j] in plugin) {
dbot.addCustomFunc(plugin[plugin.custom[j]]);

1911
package-lock.json generated Normal file

File diff suppressed because it is too large Load diff

View file

@ -8,8 +8,8 @@
"discord.js": "^11.2.1",
"embed-creator": "^1.1.4",
"jsonpath": "^0.2.12",
"moment": "^2.19.1",
"mongoose": "^4.12.3",
"moment": "^2.20.1",
"mongoose": "^4.13.7",
"node-config": "^0.0.2",
"numeral": "^2.0.6",
"request": "^2.83.0"
@ -17,16 +17,18 @@
"scripts": {
"prettier": "prettier * --write",
"build": "babel bot -d dist",
"prod": "babel bot -d dist & node dist/bot.js"
"prod": "babel bot -d dist & node dist/bot.js",
"lint": "prettier --write bot/**/*.js",
"precommit": "prettier --write bot/**/*.js"
},
"devDependencies": {
"prettier": "1.7.4"
},
"name": "wunderbot-discord",
"version": "0.0.1",
"description": "LBRYs bot for Discord",
"name": "lbry-tipbot",
"version": "0.0.3",
"description": "LBRYs tipbot for Discord",
"main": "app.js",
"repository": "https://github.com/filipnyquist/wunderbot-disc",
"repository": "https://github.com/lbryio/lbry-tipbot",
"author": "filipnyquist <filip@lbry.io>",
"license": "MIT"
}

106
yarn.lock
View file

@ -2,6 +2,10 @@
# yarn lockfile v1
"@types/node@^7.0.48":
version "7.0.48"
resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.48.tgz#24bfdc0aa82e8f6dbd017159c58094a2e06d0abb"
JSONSelect@0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/JSONSelect/-/JSONSelect-0.4.0.tgz#a08edcc67eb3fcbe99ed630855344a0cf282bb8d"
@ -18,13 +22,13 @@ ajv@^4.9.1:
json-stable-stringify "^1.0.1"
ajv@^5.1.0:
version "5.2.3"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.2.3.tgz#c06f598778c44c6b161abafe3466b81ad1814ed2"
version "5.4.0"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.4.0.tgz#32d1cf08dbc80c432f426f12e10b2511f6b46474"
dependencies:
co "^4.6.0"
fast-deep-equal "^1.0.0"
fast-json-stable-stringify "^2.0.0"
json-schema-traverse "^0.3.0"
json-stable-stringify "^1.0.1"
ansi-regex@^2.0.0:
version "2.1.1"
@ -407,8 +411,8 @@ bcrypt-pbkdf@^1.0.0:
tweetnacl "^0.14.3"
binary-extensions@^1.0.0:
version "1.10.0"
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.10.0.tgz#9aeb9a6c5e88638aad171e167f5900abe24835d0"
version "1.11.0"
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205"
bitcoin@^3.0.1:
version "3.0.1"
@ -523,16 +527,18 @@ combined-stream@^1.0.5, combined-stream@~1.0.5:
delayed-stream "~1.0.0"
commander@^2.11.0:
version "2.11.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563"
version "2.12.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.12.0.tgz#2f13615c39c687a77926aa68ef25c099db1e72fb"
dependencies:
"@types/node" "^7.0.48"
concat-map@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
config@^1.27.0:
version "1.27.0"
resolved "https://registry.yarnpkg.com/config/-/config-1.27.0.tgz#3ab30d0080ff76f407c2f47ac1326adfd908af5f"
version "1.28.1"
resolved "https://registry.yarnpkg.com/config/-/config-1.28.1.tgz#7625d2a1e4c90f131d8a73347982d93c3873282d"
dependencies:
json5 "0.4.0"
os-homedir "1.0.2"
@ -595,6 +601,10 @@ detect-indent@^4.0.0:
dependencies:
repeating "^2.0.0"
detect-libc@^1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
discord.js@^11.2.1:
version "11.2.1"
resolved "https://registry.yarnpkg.com/discord.js/-/discord.js-11.2.1.tgz#bfc0f5a8b6398dc372d026e503592646456053fc"
@ -616,8 +626,8 @@ ecc-jsbn@~0.1.1:
jsbn "~0.1.0"
embed-creator@^1.1.4:
version "1.1.4"
resolved "https://registry.yarnpkg.com/embed-creator/-/embed-creator-1.1.4.tgz#7f8a783db6ae384d029e746837d65553e6ff0f9e"
version "1.2.3"
resolved "https://registry.yarnpkg.com/embed-creator/-/embed-creator-1.2.3.tgz#f122165d39f9ca35aed3ef7b7ae643e7dd856ea1"
es6-promise@3.2.1:
version "3.2.1"
@ -695,6 +705,10 @@ fast-deep-equal@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff"
fast-json-stable-stringify@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
filename-regex@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
@ -740,19 +754,19 @@ form-data@~2.3.1:
mime-types "^2.1.12"
fs-readdir-recursive@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.0.0.tgz#8cd1745c8b4f8a29c8caec392476921ba195f560"
version "1.1.0"
resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27"
fs.realpath@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
fsevents@^1.0.0:
version "1.1.2"
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.2.tgz#3282b713fb3ad80ede0e9fcf4611b5aa6fc033f4"
version "1.1.3"
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.3.tgz#11f82318f5fe7bb2cd22965a108e9306208216d8"
dependencies:
nan "^2.3.0"
node-pre-gyp "^0.6.36"
node-pre-gyp "^0.6.39"
fstream-ignore@^1.0.5:
version "1.0.5"
@ -887,9 +901,9 @@ home-or-tmp@^2.0.0:
os-homedir "^1.0.0"
os-tmpdir "^1.0.1"
hooks-fixed@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/hooks-fixed/-/hooks-fixed-2.0.0.tgz#a01d894d52ac7f6599bbb1f63dfc9c411df70cba"
hooks-fixed@2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/hooks-fixed/-/hooks-fixed-2.0.2.tgz#20076daa07e77d8a6106883ce3f1722e051140b0"
http-signature@~1.1.0:
version "1.1.1"
@ -919,8 +933,8 @@ inherits@2, inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3:
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
ini@~1.3.0:
version "1.3.4"
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e"
version "1.3.5"
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
invariant@^2.2.2:
version "2.2.2"
@ -935,8 +949,8 @@ is-binary-path@^1.0.0:
binary-extensions "^1.0.0"
is-buffer@^1.1.5:
version "1.1.5"
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc"
version "1.1.6"
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
is-dotfile@^1.0.0:
version "1.0.3"
@ -1112,6 +1126,10 @@ lex-parser@0.1.x, lex-parser@~0.1.3:
version "0.1.4"
resolved "https://registry.yarnpkg.com/lex-parser/-/lex-parser-0.1.4.tgz#64c4f025f17fd53bfb45763faeb16f015a747550"
lodash.get@4.4.2:
version "4.4.2"
resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
lodash.some@^4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d"
@ -1179,8 +1197,8 @@ minimist@^1.2.0:
minimist "0.0.8"
moment@^2.10.3, moment@^2.19.1:
version "2.19.1"
resolved "https://registry.yarnpkg.com/moment/-/moment-2.19.1.tgz#56da1a2d1cbf01d38b7e1afc31c10bcfa1929167"
version "2.19.2"
resolved "https://registry.yarnpkg.com/moment/-/moment-2.19.2.tgz#8a7f774c95a64550b4c7ebd496683908f9419dbe"
mongodb-core@2.1.17:
version "2.1.17"
@ -1198,13 +1216,14 @@ mongodb@2.2.33:
readable-stream "2.2.7"
mongoose@^4.12.3:
version "4.12.3"
resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-4.12.3.tgz#7099bf8ce4945150001f4c2462e56c9e958ddcb9"
version "4.13.4"
resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-4.13.4.tgz#31afd5fe865911678adbc892c4d3f66d0a821dfb"
dependencies:
async "2.1.4"
bson "~1.0.4"
hooks-fixed "2.0.0"
hooks-fixed "2.0.2"
kareem "1.5.0"
lodash.get "4.4.2"
mongodb "2.2.33"
mpath "0.3.0"
mpromise "0.5.5"
@ -1240,17 +1259,18 @@ muri@1.3.0:
resolved "https://registry.yarnpkg.com/muri/-/muri-1.3.0.tgz#aeccf3db64c56aa7c5b34e00f95b7878527a4721"
nan@^2.3.0:
version "2.7.0"
resolved "https://registry.yarnpkg.com/nan/-/nan-2.7.0.tgz#d95bf721ec877e08db276ed3fc6eb78f9083ad46"
version "2.8.0"
resolved "https://registry.yarnpkg.com/nan/-/nan-2.8.0.tgz#ed715f3fe9de02b57a5e6252d90a96675e1f085a"
node-config@^0.0.2:
version "0.0.2"
resolved "https://registry.yarnpkg.com/node-config/-/node-config-0.0.2.tgz#46b40dcfbcb0e66d46a15f81b54eac2130fb150d"
node-pre-gyp@^0.6.36:
version "0.6.38"
resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.38.tgz#e92a20f83416415bb4086f6d1fb78b3da73d113d"
node-pre-gyp@^0.6.39:
version "0.6.39"
resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz#c00e96860b23c0e1420ac7befc5044e1d78d8649"
dependencies:
detect-libc "^1.0.2"
hawk "3.1.3"
mkdirp "^0.5.1"
nopt "^4.0.1"
@ -1585,8 +1605,8 @@ sliced@1.0.1:
resolved "https://registry.yarnpkg.com/sliced/-/sliced-1.0.1.tgz#0b3a662b5d04c3177b1926bea82b03f837a2ef41"
snekfetch@^3.3.0:
version "3.5.2"
resolved "https://registry.yarnpkg.com/snekfetch/-/snekfetch-3.5.2.tgz#aec6f2a7d2c43b9ed942653d1074070a2c1cae50"
version "3.5.8"
resolved "https://registry.yarnpkg.com/snekfetch/-/snekfetch-3.5.8.tgz#4d4e539f8435352105e74c392f62f66740a27d6c"
sntp@1.x.x:
version "1.0.9"
@ -1595,8 +1615,8 @@ sntp@1.x.x:
hoek "2.x.x"
sntp@2.x.x:
version "2.0.2"
resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.0.2.tgz#5064110f0af85f7cfdb7d6b67a40028ce52b4b2b"
version "2.1.0"
resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8"
dependencies:
hoek "4.x.x"
@ -1667,8 +1687,8 @@ supports-color@^2.0.0:
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
tar-pack@^3.4.0:
version "3.4.0"
resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.0.tgz#23be2d7f671a8339376cbdb0b8fe3fdebf317984"
version "3.4.1"
resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f"
dependencies:
debug "^2.2.0"
fstream "^1.0.10"
@ -1720,8 +1740,8 @@ uid-number@^0.0.6:
resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81"
ultron@~1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.0.tgz#b07a2e6a541a815fc6a34ccd4533baec307ca864"
version "1.1.1"
resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c"
underscore@1.1.x:
version "1.1.7"
@ -1768,8 +1788,8 @@ wrappy@1:
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
ws@^3.1.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/ws/-/ws-3.2.0.tgz#d5d3d6b11aff71e73f808f40cc69d52bb6d4a185"
version "3.3.2"
resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.2.tgz#96c1d08b3fefda1d5c1e33700d3bfaa9be2d5608"
dependencies:
async-limiter "~1.0.0"
safe-buffer "~5.1.0"