diff --git a/README.md b/README.md index e594051..7621f95 100644 --- a/README.md +++ b/README.md @@ -4,25 +4,28 @@ ## Features: -* Price bot displays price of lbc for currency given. Responds to `!price ` +* Price bot displays price of lbc for currency given. Responds to `!price + ` * Stats bot display current market stats of lbc. Responds to `!stats` * Hash bot displays current hashrate of network. Responds to `!hash` - Also Includes `!hash power ` to calculate given MH/s to LBC per hr, day, week, month. + Also Includes `!hash power ` to calculate given MH/s to LBC per hr, day, + week, month. * Github Release Notes bot displays release notes for current lbry-app release. - Responds to `!releasenotes` - + Responds to `!releasenotes` + (moderator only) `!releasenotes post` to send to specified channel -* Purge Bot (moderator only) deletes X amount of messages. Responds to `!purge ` +* Purge Bot (moderator only) deletes X amount of messages. Responds to `!purge + ` * Speech bot displays top claim from provided image name(coming soon posting to speech). Responds to `!speech ` -* Welcome bot sends Direct Message when new users join, +* Welcome bot sends Direct Message when new users join, (moderator only) Responds to `!welcome <@username>` diff --git a/bot/bot.js b/bot/bot.js index 42f0768..3e64a49 100644 --- a/bot/bot.js +++ b/bot/bot.js @@ -7,7 +7,7 @@ let config = require("config"); config = config.get("bot"); //load modules -const claimbot = require('./modules/claimbot.js'); +const claimbot = require("./modules/claimbot.js"); var aliases; try { @@ -199,4 +199,4 @@ exports.addCustomFunc = function(customFunc) { exports.commandCount = function() { return Object.keys(commands).length; }; -bot.login(config.token); \ No newline at end of file +bot.login(config.token); diff --git a/bot/modules/altprice.js b/bot/modules/altprice.js index 25e0ab5..3ddb410 100644 --- a/bot/modules/altprice.js +++ b/bot/modules/altprice.js @@ -1,69 +1,94 @@ -let needle = require('needle'); -let hasPriceBotChannels = require('../helpers.js').hasPriceBotChannels; -let inPrivate = require('../helpers.js').inPrivate; -let config = require('config'); -let ChannelID = config.get('pricebot').mainchannel; +let needle = require("needle"); +let hasPriceBotChannels = require("../helpers.js").hasPriceBotChannels; +let inPrivate = require("../helpers.js").inPrivate; +let config = require("config"); +let ChannelID = config.get("pricebot").mainchannel; -exports.commands = [ - "altprice" -] +exports.commands = ["altprice"]; exports.altprice = { usage: " ", - description: 'display price of specified alt coin from crypto compare\n**Example:** *!altprice ETH USD 100*', - process: function(bot,msg,suffix){ + description: + "display price of specified alt coin from crypto compare\n**Example:** *!altprice ETH USD 100*", + process: function(bot, msg, suffix) { let dt = new Date(); let timestamp = dt.toUTCString(); - if(!hasPriceBotChannels(msg) && !inPrivate(msg)){ - msg.channel.send('Please use <#' + ChannelID + '> or DMs to talk to price bot.'); - return; + if (!hasPriceBotChannels(msg) && !inPrivate(msg)) { + msg.channel.send( + "Please use <#" + ChannelID + "> or DMs to talk to price bot." + ); + return; } if (suffix !== "") { - words = suffix.trim().split(" ").filter(function(n) {return n !== "";}); - var currency1 = words[0].toUpperCase() + words = suffix + .trim() + .split(" ") + .filter(function(n) { + return n !== ""; + }); + var currency1 = words[0].toUpperCase(); if (words[1] == undefined) { - var currency2 = "BTC" + var currency2 = "BTC"; } else { - var currency2 = words[1].toUpperCase() + var currency2 = words[1].toUpperCase(); } if (words[2] == undefined) { - var amount = "1" + var amount = "1"; } else { - if (getValidatedAmount(words[2]) === null) { - msg.reply('Please specify a number for '); - return; - } - var amount = words[2].toUpperCase() + if (getValidatedAmount(words[2]) === null) { + msg.reply("Please specify a number for "); + return; + } + var amount = words[2].toUpperCase(); } } else { - var currency1 = "BTC" - var currency2 = "USD" - var amount = "1" + var currency1 = "BTC"; + var currency2 = "USD"; + var amount = "1"; } - needle.get('https://min-api.cryptocompare.com/data/all/coinlist', function(error, response) { + needle.get("https://min-api.cryptocompare.com/data/all/coinlist", function( + error, + response + ) { if (error || response.statusCode !== 200) { - msg.channel.send('coinmarketcap API is not available'); + msg.channel.send("coinmarketcap API is not available"); } else { - if (!response.body.Data.hasOwnProperty(currency1)) { - msg.channel.send("Invalid Alt Coin") - return - } - needle.get('https://min-api.cryptocompare.com/data/price?fsym='+currency1+'&tsyms='+currency2, function(error, response) { - if (error || response.statusCode !== 200) { - msg.channel.send('coinmarketcap API is not available'); - } else { - var price = Number(response.body[currency2]) - var newprice = price * amount - var message = amount+" "+currency1+" = "+newprice.toFixed(8)+" "+currency2+"\n" + - "*Updated: "+timestamp+"*"; - msg.channel.send(message) - } - }) + if (!response.body.Data.hasOwnProperty(currency1)) { + msg.channel.send("Invalid Alt Coin"); + return; } - }) + needle.get( + "https://min-api.cryptocompare.com/data/price?fsym=" + + currency1 + + "&tsyms=" + + currency2, + function(error, response) { + if (error || response.statusCode !== 200) { + msg.channel.send("coinmarketcap API is not available"); + } else { + var price = Number(response.body[currency2]); + var newprice = price * amount; + var message = + amount + + " " + + currency1 + + " = " + + newprice.toFixed(8) + + " " + + currency2 + + "\n" + + "*Updated: " + + timestamp + + "*"; + msg.channel.send(message); + } + } + ); + } + }); function getValidatedAmount(amount) { amount = amount.trim(); return amount.match(/^[0-9]+(\.[0-9]+)?$/) ? amount : null; } } -} +}; diff --git a/bot/modules/hash.js b/bot/modules/hash.js index db97d1a..720f26a 100644 --- a/bot/modules/hash.js +++ b/bot/modules/hash.js @@ -1,163 +1,233 @@ -let needle = require('needle'); -let config = require('config'); -let hasHashBotChannels = require('../helpers.js').hasHashBotChannels; -let inPrivate = require('../helpers.js').inPrivate; -let ChannelID = config.get('hashbot').mainchannel; +let needle = require("needle"); +let config = require("config"); +let hasHashBotChannels = require("../helpers.js").hasHashBotChannels; +let inPrivate = require("../helpers.js").inPrivate; +let ChannelID = config.get("hashbot").mainchannel; exports.commands = [ - "hash" // command that is in this file, every command needs it own export as shown below -] + "hash" // command that is in this file, every command needs it own export as shown below +]; -exports.custom = [ - "timedhash" -] +exports.custom = ["timedhash"]; exports.timedhash = function(bot) { - setInterval(function() { - sendMiningInfo(bot); - }, 6 * 60 * 60 * 1000); - - function sendMiningInfo(bot) { - needle.get('https://explorer.lbry.io/api/v1/status', function(error, response) { - if (error || response.statusCode !== 200) { - msg.channel.send('Explorer API is not available'); - } else { - var data = response.body; - var height = Number(data.status.height); - var hashrate = data.status.hashrate; - var difficulty = Number(data.status.difficulty); - needle.get('https://whattomine.com/coins/164.json', function(error, response) { - if (error || response.statusCode !== 200) { - msg.channel.send('whattomine API is not available'); - } - var data = response.body; - var reward = Number(data.block_reward); - var block_time = Number(data.block_time); - var difficulty24 = Number(data.difficulty24); - description = "Hashrate: "+numberWithCommas(hashrate)+"\n" + - "Difficulty: "+numberWithCommas(difficulty.toFixed(0))+"\n" + - "Difficulty 24 Hour Average: "+numberWithCommas(difficulty24.toFixed(0))+"\n" + - "Current block: "+numberWithCommas(height.toFixed(0))+"\n" + - "Block Time: "+numberWithCommas(block_time.toFixed(0))+" seconds \n" + - "Block Reward: "+numberWithCommas(reward.toFixed(0))+" LBC \n" + - "Sources: https://explorer.lbry.io & \n" + - "https://whattomine.com/coins/164-lbc-lbry"; - const embed = { - "description": description, - "color": 7976557, - "author": { - "name": "LBRY Network Stats", - "icon_url": "https://i.imgur.com/yWf5USu.png" - } - }; - bot.channels.get(ChannelID).send({ embed }) - return - }); - } - }); - function numberWithCommas(x) { - return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); - } - } -} + setInterval(function() { + sendMiningInfo(bot); + }, 6 * 60 * 60 * 1000); + function sendMiningInfo(bot) { + needle.get("https://explorer.lbry.io/api/v1/status", function( + error, + response + ) { + if (error || response.statusCode !== 200) { + msg.channel.send("Explorer API is not available"); + } else { + var data = response.body; + var height = Number(data.status.height); + var hashrate = data.status.hashrate; + var difficulty = Number(data.status.difficulty); + needle.get("https://whattomine.com/coins/164.json", function( + error, + response + ) { + if (error || response.statusCode !== 200) { + msg.channel.send("whattomine API is not available"); + } + var data = response.body; + var reward = Number(data.block_reward); + var block_time = Number(data.block_time); + var difficulty24 = Number(data.difficulty24); + description = + "Hashrate: " + + numberWithCommas(hashrate) + + "\n" + + "Difficulty: " + + numberWithCommas(difficulty.toFixed(0)) + + "\n" + + "Difficulty 24 Hour Average: " + + numberWithCommas(difficulty24.toFixed(0)) + + "\n" + + "Current block: " + + numberWithCommas(height.toFixed(0)) + + "\n" + + "Block Time: " + + numberWithCommas(block_time.toFixed(0)) + + " seconds \n" + + "Block Reward: " + + numberWithCommas(reward.toFixed(0)) + + " LBC \n" + + "Sources: https://explorer.lbry.io & \n" + + "https://whattomine.com/coins/164-lbc-lbry"; + const embed = { + description: description, + color: 7976557, + author: { + name: "LBRY Network Stats", + icon_url: "https://i.imgur.com/yWf5USu.png" + } + }; + bot.channels.get(ChannelID).send({ embed }); + return; + }); + } + }); + function numberWithCommas(x) { + return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); + } + } +}; exports.hash = { - usage: "", - description: 'Displays current Hashrate of Network\n**!hash power **\n Displays potential Earnings For Given Hashrate', - process: function(bot,msg,suffix){ - var command = '!hash'; - words = suffix.trim().split(' ').filter( function(n){return n !== "";} ); - profitcommand = words[0]; - myhashrate = words[1]; - if (profitcommand == "power") { - sendProfitInfo(bot, msg, suffix); - return - } else { - sendMiningInfo(bot, msg, suffix); - return - } + usage: "", + description: + "Displays current Hashrate of Network\n**!hash power **\n Displays potential Earnings For Given Hashrate", + process: function(bot, msg, suffix) { + var command = "!hash"; + words = suffix + .trim() + .split(" ") + .filter(function(n) { + return n !== ""; + }); + profitcommand = words[0]; + myhashrate = words[1]; + if (profitcommand == "power") { + sendProfitInfo(bot, msg, suffix); + return; + } else { + sendMiningInfo(bot, msg, suffix); + return; + } - function sendMiningInfo(bot, msg, suffix) { - if(!inPrivate(msg) && !hasHashBotChannels(msg)){ - msg.channel.send('Please use <#' + ChannelID + '> or DMs to talk to hash bot.'); - return; - } - needle.get('https://explorer.lbry.io/api/v1/status', function(error, response) { - if (error || response.statusCode !== 200) { - msg.channel.send('Explorer API is not available'); - } else { - var data = response.body; - var height = Number(data.status.height); - var hashrate = data.status.hashrate; - var difficulty = Number(data.status.difficulty); - needle.get('https://whattomine.com/coins/164.json', function(error, response) { - if (error || response.statusCode !== 200) { - msg.channel.send('whattomine API is not available'); - } - var data = response.body; - var reward = Number(data.block_reward); - var block_time = Number(data.block_time); - var difficulty24 = Number(data.difficulty24); - description = "Hashrate: "+numberWithCommas(hashrate)+"\n" + - "Difficulty: "+numberWithCommas(difficulty.toFixed(0))+"\n" + - "Difficulty 24 Hour Average: "+numberWithCommas(difficulty24.toFixed(0))+"\n" + - "Current block: "+numberWithCommas(height.toFixed(0))+"\n" + - "Block Time: "+numberWithCommas(block_time.toFixed(0))+" seconds \n" + - "Block Reward: "+numberWithCommas(reward.toFixed(0))+" LBC \n" + - "Sources: https://explorer.lbry.io & \n" + - "https://whattomine.com/coins/164-lbc-lbry"; - const embed = { - "description": description, - "color": 7976557, - "author": { - "name": "LBRY Network Stats", - "icon_url": "https://i.imgur.com/yWf5USu.png" - } - }; - msg.channel.send({ embed }); - return - }); - } - }); - } - function sendProfitInfo(bot, msg, suffix) { - needle.get('https://whattomine.com/coins/164.json', function(error, response) { - if (error || response.statusCode !== 200) { - msg.channel.send('whattomine API is not available'); - } else { - words = suffix.trim().split(' ').filter( function(n){return n !== "";} ); - var myhashrate = words[1]; - if (myhashrate == "" || myhashrate == null || myhashrate == undefined || myhashrate == " ") { - myhashrate = "100"; - } - var Diff = response.body.difficulty24; - var Reward = response.body.block_reward; - var myHash = Number(myhashrate) - var LBC = myHash / 2000 * (1 / (Diff * 2^32) * Reward) * 3600 - var LBC24 = myHash / 2000 * (1 / (Diff * 2^32) * Reward) * 86400 - var LBC1w = myHash / 2000 * (1 / (Diff * 2^32) * Reward) * 604800 - var LBC1m = myHash / 2000 * (1 / (Diff * 2^32) * Reward) * 2628000 - var message = "With **" + myHash + " Mh/s** and Average 24 hour Difficulty: **" + Diff.toFixed(0) + "**\n" + - "You can potentially earn the following amounts of **LBC**: \n" + - "1 Hour = **" + LBC.toFixed(4) + "** \n" + - "1 Day = **" + LBC24.toFixed(2) + "** \n" + - "1 Week = **" + LBC1w.toFixed(4) + "** \n" + - "1 Month = **" + LBC1m.toFixed(4) + "** \n" - const embed = { - "description": message, - "color": 7976557, - "author": { - "name": "Hashing Power Calculator!", - "icon_url": "https://i.imgur.com/nKHVQgq.png" - } - }; - msg.channel.send({ embed }) - return - } - }); - } - function numberWithCommas(x) { - return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); - } - } -} + function sendMiningInfo(bot, msg, suffix) { + if (!inPrivate(msg) && !hasHashBotChannels(msg)) { + msg.channel.send( + "Please use <#" + ChannelID + "> or DMs to talk to hash bot." + ); + return; + } + needle.get("https://explorer.lbry.io/api/v1/status", function( + error, + response + ) { + if (error || response.statusCode !== 200) { + msg.channel.send("Explorer API is not available"); + } else { + var data = response.body; + var height = Number(data.status.height); + var hashrate = data.status.hashrate; + var difficulty = Number(data.status.difficulty); + needle.get("https://whattomine.com/coins/164.json", function( + error, + response + ) { + if (error || response.statusCode !== 200) { + msg.channel.send("whattomine API is not available"); + } + var data = response.body; + var reward = Number(data.block_reward); + var block_time = Number(data.block_time); + var difficulty24 = Number(data.difficulty24); + description = + "Hashrate: " + + numberWithCommas(hashrate) + + "\n" + + "Difficulty: " + + numberWithCommas(difficulty.toFixed(0)) + + "\n" + + "Difficulty 24 Hour Average: " + + numberWithCommas(difficulty24.toFixed(0)) + + "\n" + + "Current block: " + + numberWithCommas(height.toFixed(0)) + + "\n" + + "Block Time: " + + numberWithCommas(block_time.toFixed(0)) + + " seconds \n" + + "Block Reward: " + + numberWithCommas(reward.toFixed(0)) + + " LBC \n" + + "Sources: https://explorer.lbry.io & \n" + + "https://whattomine.com/coins/164-lbc-lbry"; + const embed = { + description: description, + color: 7976557, + author: { + name: "LBRY Network Stats", + icon_url: "https://i.imgur.com/yWf5USu.png" + } + }; + msg.channel.send({ embed }); + return; + }); + } + }); + } + function sendProfitInfo(bot, msg, suffix) { + needle.get("https://whattomine.com/coins/164.json", function( + error, + response + ) { + if (error || response.statusCode !== 200) { + msg.channel.send("whattomine API is not available"); + } else { + words = suffix + .trim() + .split(" ") + .filter(function(n) { + return n !== ""; + }); + var myhashrate = words[1]; + if ( + myhashrate == "" || + myhashrate == null || + myhashrate == undefined || + myhashrate == " " + ) { + myhashrate = "100"; + } + var Diff = response.body.difficulty24; + var Reward = response.body.block_reward; + var myHash = Number(myhashrate); + var LBC = myHash / 2000 * (1 / ((Diff * 2) ^ 32) * Reward) * 3600; + var LBC24 = myHash / 2000 * (1 / ((Diff * 2) ^ 32) * Reward) * 86400; + var LBC1w = myHash / 2000 * (1 / ((Diff * 2) ^ 32) * Reward) * 604800; + var LBC1m = + myHash / 2000 * (1 / ((Diff * 2) ^ 32) * Reward) * 2628000; + var message = + "With **" + + myHash + + " Mh/s** and Average 24 hour Difficulty: **" + + Diff.toFixed(0) + + "**\n" + + "You can potentially earn the following amounts of **LBC**: \n" + + "1 Hour = **" + + LBC.toFixed(4) + + "** \n" + + "1 Day = **" + + LBC24.toFixed(2) + + "** \n" + + "1 Week = **" + + LBC1w.toFixed(4) + + "** \n" + + "1 Month = **" + + LBC1m.toFixed(4) + + "** \n"; + const embed = { + description: message, + color: 7976557, + author: { + name: "Hashing Power Calculator!", + icon_url: "https://i.imgur.com/nKHVQgq.png" + } + }; + msg.channel.send({ embed }); + return; + } + }); + } + function numberWithCommas(x) { + return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); + } + } +}; diff --git a/bot/modules/lbrylink.js b/bot/modules/lbrylink.js index c0e2c99..f55ca57 100644 --- a/bot/modules/lbrylink.js +++ b/bot/modules/lbrylink.js @@ -2,56 +2,69 @@ let inPrivate = require("../helpers.js").inPrivate; exports.custom = [ "lbrylink" //change this to your function name -] +]; exports.lbrylink = function(bot, msg, suffix) { - bot.on('message', msg => { + bot.on("message", msg => { if (inPrivate(msg)) { return; } - var link = msg.content.indexOf("lbry://") + var link = msg.content.indexOf("lbry://"); if (link != -1) { var text = msg.content.replace("lbry://", "https://open.lbry.io/"); - var message = GetWordByPos(text, link) + var message = GetWordByPos(text, link); if (text.search("<") != -1) { - var name = "@" + msg.mentions.members.first().user.username - var trim = message.split("/").pop() - var trim2 = trim.substr(2) - var id = trim2.substr(0, trim2.length - 1) + var name = "@" + msg.mentions.members.first().user.username; + var trim = message.split("/").pop(); + var trim2 = trim.substr(2); + var id = trim2.substr(0, trim2.length - 1); if (message.indexOf("#") != -1) { if (trim.indexOf("@") != -1) { - var trim3 = message.split("#").pop() - var message = "https://open.lbry.io/" + name + "#" + trim3 - var newname = name + "#" + trim3 + var trim3 = message.split("#").pop(); + var message = "https://open.lbry.io/" + name + "#" + trim3; + var newname = name + "#" + trim3; } else { - var trim3 = message.split("/").pop() - var done = trim3 - var message = "https://open.lbry.io/" + name + "/" + done - var newname = name + "/" + done + var trim3 = message.split("/").pop(); + var done = trim3; + var message = "https://open.lbry.io/" + name + "/" + done; + var newname = name + "/" + done; } } else { if (msg.mentions.members.first().id != id) { - var message = "https://open.lbry.io/@" + msg.mentions.members.first().user.username + "/" + message.split("/").pop() - var newname = name + "/" + message.split("/").pop() + var message = + "https://open.lbry.io/@" + + msg.mentions.members.first().user.username + + "/" + + message.split("/").pop(); + var newname = name + "/" + message.split("/").pop(); } else { - var message = "https://open.lbry.io/@" + msg.mentions.members.first().user.username - var newname = name + var message = + "https://open.lbry.io/@" + + msg.mentions.members.first().user.username; + var newname = name; } } } else { var newname = message.replace("https://open.lbry.io/", ""); } const embed = { - "description": msg.author + ", I see you tried to post a LBRY URL, here's a friendly hyperlink to share and for others to access your content with a single click: \n" + "[lbry://" + newname + "](" + message + ")", - "color": 7976557, - "author": { - "name": "LBRY Linker", - "icon_url": "https://i.imgur.com/yWf5USu.png" + description: + msg.author + + ", I see you tried to post a LBRY URL, here's a friendly hyperlink to share and for others to access your content with a single click: \n" + + "[lbry://" + + newname + + "](" + + message + + ")", + color: 7976557, + author: { + name: "LBRY Linker", + icon_url: "https://i.imgur.com/yWf5USu.png" } }; msg.channel.send({ embed - }) + }); } function GetWordByPos(str, pos) { @@ -63,5 +76,5 @@ exports.lbrylink = function(bot, msg, suffix) { return left + right; } - }) -} + }); +}; diff --git a/bot/modules/stats.js b/bot/modules/stats.js index 97d7c61..bbfed25 100644 --- a/bot/modules/stats.js +++ b/bot/modules/stats.js @@ -1,115 +1,169 @@ -let jp = require('jsonpath'); -let moment = require('moment'); -let numeral = require('numeral'); -let request = require('request'); -let config = require('config'); -let needle = require('needle'); -let hasStatsBotChannels = require('../helpers.js').hasStatsBotChannels; -let inPrivate = require('../helpers.js').inPrivate; -let ChannelID = config.get('statsbot').mainchannel; -let statsurl = "https://coinmarketcap.com/currencies/library-credit/" +let jp = require("jsonpath"); +let moment = require("moment"); +let numeral = require("numeral"); +let request = require("request"); +let config = require("config"); +let needle = require("needle"); +let hasStatsBotChannels = require("../helpers.js").hasStatsBotChannels; +let inPrivate = require("../helpers.js").inPrivate; +let ChannelID = config.get("statsbot").mainchannel; +let statsurl = "https://coinmarketcap.com/currencies/library-credit/"; exports.commands = [ - "stats" // command that is in this file, every command needs it own export as shown below -] + "stats" // command that is in this file, every command needs it own export as shown below +]; exports.stats = { - usage: "", - description: 'Displays list of current Market stats', - process: function(bot,msg){ - needle.get('https://api.coinmarketcap.com/v1/ticker/library-credit/', function(error, response) { - if (error || response.statusCode !== 200) { - msg.channel.send('coinmarketcap API is not available'); - } else { - var data = response.body[0]; - var rank = data.rank - var price_usd = Number(data.price_usd) - var price_btc = Number(data.price_btc) - var market_cap_usd = Number(data.market_cap_usd) - var available_supply = Number(data.available_supply) - var total_supply = Number(data.total_supply) - var percent_change_1h = Number(data.percent_change_1h) - var percent_change_24h = Number(data.percent_change_24h) - var json = response.body[0]; - var newjson = parse_obj(json) - var parse = JSON.stringify(newjson) - var volume24_usd = parse.replace(/[^0-9]/g, ''); - var dt = new Date(); - var timestamp = dt.toUTCString(); - var hr_indicator = ":thumbsup:" - var day_indicator =":thumbsup:" - if (percent_change_1h < 0) { - hr_indicator = ":thumbsdown:" - } - if (percent_change_24h < 0) { - day_indicator = ":thumbsdown:" - } + usage: "", + description: "Displays list of current Market stats", + process: function(bot, msg) { + needle.get( + "https://api.coinmarketcap.com/v1/ticker/library-credit/", + function(error, response) { + if (error || response.statusCode !== 200) { + msg.channel.send("coinmarketcap API is not available"); + } else { + var data = response.body[0]; + var rank = data.rank; + var price_usd = Number(data.price_usd); + var price_btc = Number(data.price_btc); + var market_cap_usd = Number(data.market_cap_usd); + var available_supply = Number(data.available_supply); + var total_supply = Number(data.total_supply); + var percent_change_1h = Number(data.percent_change_1h); + var percent_change_24h = Number(data.percent_change_24h); + var json = response.body[0]; + var newjson = parse_obj(json); + var parse = JSON.stringify(newjson); + var volume24_usd = parse.replace(/[^0-9]/g, ""); + var dt = new Date(); + var timestamp = dt.toUTCString(); + var hr_indicator = ":thumbsup:"; + var day_indicator = ":thumbsup:"; + if (percent_change_1h < 0) { + hr_indicator = ":thumbsdown:"; + } + if (percent_change_24h < 0) { + day_indicator = ":thumbsdown:"; + } - needle.get('https://api.coinmarketcap.com/v1/ticker/library-credit/?convert=GBP', function(error, response) { - if (error || response.statusCode !== 200) { - msg.channel.send('coinmarketcap API is not available'); - } else { - var data = response.body[0]; - var price_gbp = Number(data.price_gbp) - needle.get('https://api.coinmarketcap.com/v1/ticker/library-credit/?convert=EUR', function(error, response) { - if (error || response.statusCode !== 200) { - msg.channel.send('coinmarketcap API is not available'); - } else { - var data = response.body[0]; - var price_eur = Number(data.price_eur) - description = "**Rank: ["+rank+"]("+statsurl+")**\n" + - "**Data**\n" + - "Market Cap: [$"+numberWithCommas(market_cap_usd)+"]("+statsurl+") \n" + - "Total Supply: ["+numberWithCommas(total_supply)+" LBC]("+statsurl+")\n" + - "Circulating Supply: ["+numberWithCommas(available_supply)+" LBC]("+statsurl+")\n" + - "24 Hour Volume: [$"+volume24_usd+"]("+statsurl+") \n\n" + - "**Price**\n" + - "BTC: [₿"+price_btc.toFixed(8)+"]("+statsurl+")\n" + - "USD: [$"+price_usd.toFixed(2)+"]("+statsurl+") \n" + - "EUR: [€"+price_eur.toFixed(2)+"]("+statsurl+") \n" + - "GBP: [£"+price_gbp.toFixed(2)+"]("+statsurl+") \n\n" + - "**% Change**\n" + - "1 Hour: ["+percent_change_1h+"]("+statsurl+") "+hr_indicator+" \n\n" + - "1 Day: ["+percent_change_24h+"]("+statsurl+") "+day_indicator+" \n\n" - const embed = { - "description": description, - "color": 7976557, - "footer": { - "text": "Last Updated: "+timestamp - }, - "author": { - "name": "Coin Market Cap Stats (LBC)", - "url": statsurl, - "icon_url": "https://i.imgur.com/yWf5USu.png" - } - }; - msg.channel.send({ embed }) - } - }) - } - }) - } - }) - function parse_obj(obj) - { - var array = []; - var prop; - for (prop in obj) - { - if (obj.hasOwnProperty(prop)) - { - var key = parseInt(prop, 10); - var value = obj[prop]; - if (typeof value == "object") - { - value = parse_obj(value); - } - array[key] = value; - } - } - return array; - } - function numberWithCommas(x) { - return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); - } + needle.get( + "https://api.coinmarketcap.com/v1/ticker/library-credit/?convert=GBP", + function(error, response) { + if (error || response.statusCode !== 200) { + msg.channel.send("coinmarketcap API is not available"); + } else { + var data = response.body[0]; + var price_gbp = Number(data.price_gbp); + needle.get( + "https://api.coinmarketcap.com/v1/ticker/library-credit/?convert=EUR", + function(error, response) { + if (error || response.statusCode !== 200) { + msg.channel.send("coinmarketcap API is not available"); + } else { + var data = response.body[0]; + var price_eur = Number(data.price_eur); + description = + "**Rank: [" + + rank + + "](" + + statsurl + + ")**\n" + + "**Data**\n" + + "Market Cap: [$" + + numberWithCommas(market_cap_usd) + + "](" + + statsurl + + ") \n" + + "Total Supply: [" + + numberWithCommas(total_supply) + + " LBC](" + + statsurl + + ")\n" + + "Circulating Supply: [" + + numberWithCommas(available_supply) + + " LBC](" + + statsurl + + ")\n" + + "24 Hour Volume: [$" + + volume24_usd + + "](" + + statsurl + + ") \n\n" + + "**Price**\n" + + "BTC: [₿" + + price_btc.toFixed(8) + + "](" + + statsurl + + ")\n" + + "USD: [$" + + price_usd.toFixed(2) + + "](" + + statsurl + + ") \n" + + "EUR: [€" + + price_eur.toFixed(2) + + "](" + + statsurl + + ") \n" + + "GBP: [£" + + price_gbp.toFixed(2) + + "](" + + statsurl + + ") \n\n" + + "**% Change**\n" + + "1 Hour: [" + + percent_change_1h + + "](" + + statsurl + + ") " + + hr_indicator + + " \n\n" + + "1 Day: [" + + percent_change_24h + + "](" + + statsurl + + ") " + + day_indicator + + " \n\n"; + const embed = { + description: description, + color: 7976557, + footer: { + text: "Last Updated: " + timestamp + }, + author: { + name: "Coin Market Cap Stats (LBC)", + url: statsurl, + icon_url: "https://i.imgur.com/yWf5USu.png" + } + }; + msg.channel.send({ embed }); + } + } + ); + } + } + ); + } + } + ); + function parse_obj(obj) { + var array = []; + var prop; + for (prop in obj) { + if (obj.hasOwnProperty(prop)) { + var key = parseInt(prop, 10); + var value = obj[prop]; + if (typeof value == "object") { + value = parse_obj(value); + } + array[key] = value; + } + } + return array; } -} + function numberWithCommas(x) { + return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); + } + } +}; diff --git a/bot/modules/tipfix.js b/bot/modules/tipfix.js index f2c6d40..38e0f4d 100644 --- a/bot/modules/tipfix.js +++ b/bot/modules/tipfix.js @@ -1,10 +1,10 @@ -"use strict"; -exports.commands = ["tip"]; - exports.tip = { - usage: "", - description: - "balance: get your balance\n deposit: get address for your deposits\n withdraw ADDRESS AMOUNT: withdraw AMOUNT credits to ADDRESS\n : mention a user with @ and then the amount to tip them", - process: function(bot) { - return; // Tipping is now handled by the separate tipbot(in branch tipbot_dc), no need to to anything here... - } - }; +"use strict"; +exports.commands = ["tip"]; +exports.tip = { + usage: "", + description: + "balance: get your balance\n deposit: get address for your deposits\n withdraw ADDRESS AMOUNT: withdraw AMOUNT credits to ADDRESS\n : mention a user with @ and then the amount to tip them", + process: function(bot) { + return; // Tipping is now handled by the separate tipbot(in branch tipbot_dc), no need to to anything here... + } +}; diff --git a/package-lock.json b/package-lock.json index 389bf46..91b3ae9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,7 +6,8 @@ "dependencies": { "JSONSelect": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/JSONSelect/-/JSONSelect-0.4.0.tgz", + "resolved": + "https://registry.npmjs.org/JSONSelect/-/JSONSelect-0.4.0.tgz", "integrity": "sha1-oI7cxn6z/L6Z7WMIVTRKDPKCu40=" }, "ajv": { @@ -22,18 +23,21 @@ }, "ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "resolved": + "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "ansi-styles": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "resolved": + "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, "anymatch": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "integrity": + "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "optional": true, "requires": { "micromatch": "2.3.11", @@ -51,13 +55,16 @@ }, "arr-flatten": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "resolved": + "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": + "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "optional": true }, "array-unique": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "resolved": + "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", "optional": true }, @@ -68,7 +75,8 @@ }, "assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "resolved": + "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, "async": { @@ -81,14 +89,17 @@ }, "async-each": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "resolved": + "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", "optional": true }, "async-limiter": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", - "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==" + "resolved": + "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", + "integrity": + "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==" }, "asynckit": { "version": "0.4.0", @@ -129,7 +140,8 @@ }, "babel-code-frame": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "resolved": + "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "requires": { "chalk": "1.1.3", @@ -139,7 +151,8 @@ }, "babel-core": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", + "resolved": + "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", "requires": { "babel-code-frame": "6.26.0", @@ -165,7 +178,8 @@ }, "babel-generator": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", + "resolved": + "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", "requires": { "babel-messages": "6.23.0", @@ -180,7 +194,8 @@ }, "babel-helper-function-name": { "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "resolved": + "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", "requires": { "babel-helper-get-function-arity": "6.24.1", @@ -192,7 +207,8 @@ }, "babel-helper-get-function-arity": { "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "resolved": + "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", "requires": { "babel-runtime": "6.26.0", @@ -201,12 +217,14 @@ }, "babel-helper-mark-eval-scopes": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/babel-helper-mark-eval-scopes/-/babel-helper-mark-eval-scopes-0.1.1.tgz", + "resolved": + "https://registry.npmjs.org/babel-helper-mark-eval-scopes/-/babel-helper-mark-eval-scopes-0.1.1.tgz", "integrity": "sha1-RVQ0Xt+fJUlCe9IJjlMCU/ivKZI=" }, "babel-helper-remap-async-to-generator": { "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", + "resolved": + "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", "requires": { "babel-helper-function-name": "6.24.1", @@ -218,12 +236,14 @@ }, "babel-helper-remove-or-void": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/babel-helper-remove-or-void/-/babel-helper-remove-or-void-0.1.1.tgz", + "resolved": + "https://registry.npmjs.org/babel-helper-remove-or-void/-/babel-helper-remove-or-void-0.1.1.tgz", "integrity": "sha1-nX4YVtxvr8tBsoOkFnMNwYRPZtc=" }, "babel-helpers": { "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "resolved": + "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "requires": { "babel-runtime": "6.26.0", @@ -232,7 +252,8 @@ }, "babel-messages": { "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "resolved": + "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "requires": { "babel-runtime": "6.26.0" @@ -240,7 +261,8 @@ }, "babel-plugin-minify-dead-code-elimination": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-dead-code-elimination/-/babel-plugin-minify-dead-code-elimination-0.1.7.tgz", + "resolved": + "https://registry.npmjs.org/babel-plugin-minify-dead-code-elimination/-/babel-plugin-minify-dead-code-elimination-0.1.7.tgz", "integrity": "sha1-d09TbzR7mDk6J7qnF4cpaIE8NCw=", "requires": { "babel-helper-mark-eval-scopes": "0.1.1", @@ -250,32 +272,38 @@ }, "babel-plugin-syntax-async-generators": { "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz", + "resolved": + "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz", "integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=" }, "babel-plugin-syntax-class-properties": { "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz", + "resolved": + "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz", "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=" }, "babel-plugin-syntax-export-extensions": { "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz", + "resolved": + "https://registry.npmjs.org/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz", "integrity": "sha1-cKFITw+QiaToStRLrDU8lbmxJyE=" }, "babel-plugin-syntax-object-rest-spread": { "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "resolved": + "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=" }, "babel-plugin-syntax-trailing-function-commas": { "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", + "resolved": + "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=" }, "babel-plugin-transform-async-generator-functions": { "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz", + "resolved": + "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz", "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=", "requires": { "babel-helper-remap-async-to-generator": "6.24.1", @@ -285,7 +313,8 @@ }, "babel-plugin-transform-class-properties": { "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz", + "resolved": + "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz", "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=", "requires": { "babel-helper-function-name": "6.24.1", @@ -296,7 +325,8 @@ }, "babel-plugin-transform-es2015-block-scoping": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", + "resolved": + "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", "requires": { "babel-runtime": "6.26.0", @@ -308,7 +338,8 @@ }, "babel-plugin-transform-es2015-for-of": { "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "resolved": + "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", "requires": { "babel-runtime": "6.26.0" @@ -316,7 +347,8 @@ }, "babel-plugin-transform-es2015-modules-commonjs": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz", + "resolved": + "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz", "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", "requires": { "babel-plugin-transform-strict-mode": "6.24.1", @@ -327,7 +359,8 @@ }, "babel-plugin-transform-export-extensions": { "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.22.0.tgz", + "resolved": + "https://registry.npmjs.org/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.22.0.tgz", "integrity": "sha1-U3OLR+deghhYnuqUbLvTkQm75lM=", "requires": { "babel-plugin-syntax-export-extensions": "6.13.0", @@ -336,12 +369,14 @@ }, "babel-plugin-transform-inline-consecutive-adds": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-inline-consecutive-adds/-/babel-plugin-transform-inline-consecutive-adds-0.1.2.tgz", + "resolved": + "https://registry.npmjs.org/babel-plugin-transform-inline-consecutive-adds/-/babel-plugin-transform-inline-consecutive-adds-0.1.2.tgz", "integrity": "sha1-VELp8cGceKeJn4pN7m/UgfYQAfU=" }, "babel-plugin-transform-object-rest-spread": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", + "resolved": + "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", "requires": { "babel-plugin-syntax-object-rest-spread": "6.13.0", @@ -350,7 +385,8 @@ }, "babel-plugin-transform-strict-mode": { "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", + "resolved": + "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "requires": { "babel-runtime": "6.26.0", @@ -359,7 +395,8 @@ }, "babel-polyfill": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", + "resolved": + "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", "requires": { "babel-runtime": "6.26.0", @@ -369,15 +406,18 @@ "dependencies": { "regenerator-runtime": { "version": "0.10.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", + "resolved": + "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=" } } }, "babel-preset-node8": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/babel-preset-node8/-/babel-preset-node8-1.2.0.tgz", - "integrity": "sha512-pJR+UU+mWOYbgeNkEDZj/ORaks8de9+t0hZmaTHWBMo8x4OQ/GKaXfX2RSasYtFJVqaudOSMG3omE3Q3hhC1uA==", + "resolved": + "https://registry.npmjs.org/babel-preset-node8/-/babel-preset-node8-1.2.0.tgz", + "integrity": + "sha512-pJR+UU+mWOYbgeNkEDZj/ORaks8de9+t0hZmaTHWBMo8x4OQ/GKaXfX2RSasYtFJVqaudOSMG3omE3Q3hhC1uA==", "requires": { "babel-plugin-minify-dead-code-elimination": "0.1.7", "babel-plugin-syntax-trailing-function-commas": "6.22.0", @@ -393,7 +433,8 @@ }, "babel-register": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "resolved": + "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "requires": { "babel-core": "6.26.0", @@ -407,7 +448,8 @@ }, "babel-runtime": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "resolved": + "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { "core-js": "2.5.1", @@ -416,7 +458,8 @@ }, "babel-template": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "resolved": + "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "requires": { "babel-runtime": "6.26.0", @@ -428,7 +471,8 @@ }, "babel-traverse": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "resolved": + "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "requires": { "babel-code-frame": "6.26.0", @@ -444,7 +488,8 @@ }, "babel-types": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "resolved": + "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "requires": { "babel-runtime": "6.26.0", @@ -456,16 +501,19 @@ "babylon": { "version": "6.18.0", "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" + "integrity": + "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" }, "balanced-match": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "resolved": + "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "bcrypt-pbkdf": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "resolved": + "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", "optional": true, "requires": { @@ -474,7 +522,8 @@ "dependencies": { "tweetnacl": { "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "resolved": + "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "optional": true } @@ -482,7 +531,8 @@ }, "binary-extensions": { "version": "1.10.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.10.0.tgz", + "resolved": + "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.10.0.tgz", "integrity": "sha1-muuabF6IY4qtFx4Wf1kAq+JINdA=", "optional": true }, @@ -494,7 +544,8 @@ "bluebird": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", - "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" + "integrity": + "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" }, "boom": { "version": "4.3.1", @@ -506,7 +557,8 @@ }, "brace-expansion": { "version": "1.1.8", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "resolved": + "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", "requires": { "balanced-match": "1.0.0", @@ -531,7 +583,8 @@ }, "buffer-shims": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", + "resolved": + "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=" }, "caseless": { @@ -569,7 +622,8 @@ }, "chrono-node": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/chrono-node/-/chrono-node-1.3.5.tgz", + "resolved": + "https://registry.npmjs.org/chrono-node/-/chrono-node-1.3.5.tgz", "integrity": "sha1-oklSmKMtqCvMAa2b59d++l4kQSI=", "requires": { "moment": "2.19.1" @@ -592,7 +646,8 @@ }, "combined-stream": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "resolved": + "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", "requires": { "delayed-stream": "1.0.0" @@ -601,11 +656,13 @@ "commander": { "version": "2.11.0", "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", - "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==" + "integrity": + "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==" }, "concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "resolved": + "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "config": { @@ -626,7 +683,8 @@ }, "convert-source-map": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz", + "resolved": + "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz", "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=" }, "core-js": { @@ -636,7 +694,8 @@ }, "core-util-is": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "resolved": + "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "cryptiles": { @@ -650,7 +709,8 @@ "boom": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", - "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", + "integrity": + "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", "requires": { "hoek": "4.2.0" } @@ -668,19 +728,22 @@ "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "integrity": + "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "requires": { "ms": "2.0.0" } }, "delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "resolved": + "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "detect-indent": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "resolved": + "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "requires": { "repeating": "2.0.1" @@ -688,8 +751,10 @@ }, "discord.js": { "version": "11.2.1", - "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-11.2.1.tgz", - "integrity": "sha512-8Mor+IREVWHinjRd6Bu6OwRfT+ET/WEoLWMl8crFvBVcTFmaO/TSwP39C8QIGCB2YMVMYMdljjX/w17AUMemqg==", + "resolved": + "https://registry.npmjs.org/discord.js/-/discord.js-11.2.1.tgz", + "integrity": + "sha512-8Mor+IREVWHinjRd6Bu6OwRfT+ET/WEoLWMl8crFvBVcTFmaO/TSwP39C8QIGCB2YMVMYMdljjX/w17AUMemqg==", "requires": { "long": "3.2.0", "prism-media": "0.0.1", @@ -700,7 +765,8 @@ }, "ebnf-parser": { "version": "0.1.10", - "resolved": "https://registry.npmjs.org/ebnf-parser/-/ebnf-parser-0.1.10.tgz", + "resolved": + "https://registry.npmjs.org/ebnf-parser/-/ebnf-parser-0.1.10.tgz", "integrity": "sha1-zR9rpHfFY4xAyX7ZtXLbW6tdgzE=" }, "ecc-jsbn": { @@ -714,17 +780,21 @@ }, "embed-creator": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/embed-creator/-/embed-creator-1.1.4.tgz", - "integrity": "sha512-/UDtZyrj+0X5actMc2N2u/XoHYGHZrzGToG3vBPGjz3diufnHBrYQnkXeGE8kCTn/xkleXnXuNbIijwqPexB6A==" + "resolved": + "https://registry.npmjs.org/embed-creator/-/embed-creator-1.1.4.tgz", + "integrity": + "sha512-/UDtZyrj+0X5actMc2N2u/XoHYGHZrzGToG3vBPGjz3diufnHBrYQnkXeGE8kCTn/xkleXnXuNbIijwqPexB6A==" }, "es6-promise": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.2.1.tgz", + "resolved": + "https://registry.npmjs.org/es6-promise/-/es6-promise-3.2.1.tgz", "integrity": "sha1-7FYjOGgDKQkgcXDDlEjiREndH8Q=" }, "escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "resolved": + "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "escodegen": { @@ -751,7 +821,8 @@ }, "estraverse": { "version": "0.0.4", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-0.0.4.tgz", + "resolved": + "https://registry.npmjs.org/estraverse/-/estraverse-0.0.4.tgz", "integrity": "sha1-AaCTLf7ldGhKWYr1pnw7+bZCjbI=" }, "esutils": { @@ -761,7 +832,8 @@ }, "expand-brackets": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "resolved": + "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "optional": true, "requires": { @@ -770,7 +842,8 @@ }, "expand-range": { "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "resolved": + "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "optional": true, "requires": { @@ -793,28 +866,33 @@ }, "extsprintf": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "resolved": + "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" }, "fast-deep-equal": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", + "resolved": + "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=" }, "fast-json-stable-stringify": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "resolved": + "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" }, "filename-regex": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "resolved": + "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", "optional": true }, "fill-range": { "version": "2.2.3", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", + "resolved": + "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", "optional": true, "requires": { @@ -842,7 +920,8 @@ }, "forever-agent": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "resolved": + "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" }, "form-data": { @@ -857,12 +936,14 @@ }, "fs-readdir-recursive": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.0.0.tgz", + "resolved": + "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.0.0.tgz", "integrity": "sha1-jNF0XItPiinIyuw5JHaSG6GV9WA=" }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "resolved": + "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "getpass": { @@ -876,7 +957,8 @@ "glob": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "integrity": + "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "requires": { "fs.realpath": "1.0.0", "inflight": "1.0.6", @@ -898,7 +980,8 @@ }, "glob-parent": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "resolved": + "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "requires": { "is-glob": "2.0.1" @@ -907,21 +990,25 @@ "globals": { "version": "9.18.0", "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" + "integrity": + "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" }, "graceful-fs": { "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "resolved": + "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" }, "har-schema": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "resolved": + "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" }, "har-validator": { "version": "5.0.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", + "resolved": + "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", "requires": { "ajv": "5.3.0", @@ -939,7 +1026,8 @@ "hawk": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", - "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", + "integrity": + "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", "requires": { "boom": "4.3.1", "cryptiles": "3.1.2", @@ -950,11 +1038,13 @@ "hoek": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz", - "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==" + "integrity": + "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==" }, "home-or-tmp": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "resolved": + "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "requires": { "os-homedir": "1.0.2", @@ -963,12 +1053,15 @@ }, "hooks-fixed": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hooks-fixed/-/hooks-fixed-2.0.2.tgz", - "integrity": "sha512-YurCM4gQSetcrhwEtpQHhQ4M7Zo7poNGqY4kQGeBS6eZtOcT3tnNs01ThFa0jYBByAiYt1MjMjP/YApG0EnAvQ==" + "resolved": + "https://registry.npmjs.org/hooks-fixed/-/hooks-fixed-2.0.2.tgz", + "integrity": + "sha512-YurCM4gQSetcrhwEtpQHhQ4M7Zo7poNGqY4kQGeBS6eZtOcT3tnNs01ThFa0jYBByAiYt1MjMjP/YApG0EnAvQ==" }, "http-signature": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "resolved": + "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { "assert-plus": "1.0.0", @@ -1000,7 +1093,8 @@ }, "is-binary-path": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "resolved": + "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "optional": true, "requires": { @@ -1010,17 +1104,20 @@ "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + "integrity": + "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "is-dotfile": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "resolved": + "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", "optional": true }, "is-equal-shallow": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "resolved": + "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "optional": true, "requires": { @@ -1029,13 +1126,15 @@ }, "is-extendable": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "resolved": + "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "optional": true }, "is-extglob": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "resolved": + "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" }, "is-finite": { @@ -1065,19 +1164,22 @@ }, "is-posix-bracket": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "resolved": + "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", "optional": true }, "is-primitive": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "resolved": + "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", "optional": true }, "is-typedarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "resolved": + "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, "isarray": { @@ -1148,17 +1250,20 @@ }, "json-schema": { "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "resolved": + "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" }, "json-schema-traverse": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "resolved": + "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" }, "json-stringify-safe": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "resolved": + "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, "json5": { @@ -1203,7 +1308,8 @@ }, "lex-parser": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/lex-parser/-/lex-parser-0.1.4.tgz", + "resolved": + "https://registry.npmjs.org/lex-parser/-/lex-parser-0.1.4.tgz", "integrity": "sha1-ZMTwJfF/1Tv7RXY/rrFvAVp0dVA=" }, "lodash": { @@ -1213,12 +1319,14 @@ }, "lodash.get": { "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "resolved": + "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" }, "lodash.some": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz", + "resolved": + "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz", "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=" }, "long": { @@ -1228,7 +1336,8 @@ }, "loose-envify": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "resolved": + "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "requires": { "js-tokens": "3.0.2" @@ -1236,7 +1345,8 @@ }, "micromatch": { "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "resolved": + "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "optional": true, "requires": { @@ -1262,7 +1372,8 @@ }, "mime-types": { "version": "2.1.17", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", + "resolved": + "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", "requires": { "mime-db": "1.30.0" @@ -1271,7 +1382,8 @@ "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "integrity": + "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { "brace-expansion": "1.1.8" } @@ -1306,7 +1418,8 @@ "dependencies": { "readable-stream": { "version": "2.2.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.7.tgz", + "resolved": + "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.7.tgz", "integrity": "sha1-BwV6y+JGeyIELTb5jFrVBwVOlbE=", "requires": { "buffer-shims": "1.0.0", @@ -1322,7 +1435,8 @@ }, "mongodb-core": { "version": "2.1.17", - "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-2.1.17.tgz", + "resolved": + "https://registry.npmjs.org/mongodb-core/-/mongodb-core-2.1.17.tgz", "integrity": "sha1-pBizN6FKFJkPtRC5I97mqBMXPfg=", "requires": { "bson": "1.0.4", @@ -1332,7 +1446,8 @@ "mongoose": { "version": "4.13.0", "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-4.13.0.tgz", - "integrity": "sha512-PVUEQ4eS1Bh0Q4IqWRph+li8VMwBxHetdJ1O/P/vE8DktOtBOM1G1G0QOrtQSW1FDrLFSVYkzK4IfI7vJeihQg==", + "integrity": + "sha512-PVUEQ4eS1Bh0Q4IqWRph+li8VMwBxHetdJ1O/P/vE8DktOtBOM1G1G0QOrtQSW1FDrLFSVYkzK4IfI7vJeihQg==", "requires": { "async": "2.1.4", "bson": "1.0.4", @@ -1362,7 +1477,8 @@ "mquery": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/mquery/-/mquery-2.3.2.tgz", - "integrity": "sha512-KXWMypZSvhCuqRtza+HMQZdYw7PfFBjBTFvP31NNAq0OX0/NTIgpcDpkWQ2uTxk6vGQtwQ2elhwhs+ZvCA8OaA==", + "integrity": + "sha512-KXWMypZSvhCuqRtza+HMQZdYw7PfFBjBTFvP31NNAq0OX0/NTIgpcDpkWQ2uTxk6vGQtwQ2elhwhs+ZvCA8OaA==", "requires": { "bluebird": "3.5.1", "debug": "2.6.9", @@ -1385,11 +1501,13 @@ "muri": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/muri/-/muri-1.3.0.tgz", - "integrity": "sha512-FiaFwKl864onHFFUV/a2szAl7X0fxVlSKNdhTf+BM8i8goEgYut8u5P9MqQqIYwvaMxjzVESsoEm/2kfkFH1rg==" + "integrity": + "sha512-FiaFwKl864onHFFUV/a2szAl7X0fxVlSKNdhTf+BM8i8goEgYut8u5P9MqQqIYwvaMxjzVESsoEm/2kfkFH1rg==" }, "node-config": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/node-config/-/node-config-0.0.2.tgz", + "resolved": + "https://registry.npmjs.org/node-config/-/node-config-0.0.2.tgz", "integrity": "sha1-RrQNz7yw5m1GoV+BtU6sITD7FQ0=" }, "nomnom": { @@ -1403,14 +1521,16 @@ "dependencies": { "underscore": { "version": "1.1.7", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.1.7.tgz", + "resolved": + "https://registry.npmjs.org/underscore/-/underscore-1.1.7.tgz", "integrity": "sha1-QLq4S60Z0jAJbo1u9ii/8FXYPbA=" } } }, "normalize-path": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "resolved": + "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "requires": { "remove-trailing-separator": "1.1.0" @@ -1418,7 +1538,8 @@ }, "number-is-nan": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "resolved": + "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, "numeral": { @@ -1428,17 +1549,20 @@ }, "oauth-sign": { "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "resolved": + "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" }, "object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "resolved": + "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "object.omit": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "resolved": + "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "optional": true, "requires": { @@ -1456,7 +1580,8 @@ }, "os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "resolved": + "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" }, "os-tmpdir": { @@ -1466,7 +1591,8 @@ }, "output-file-sync": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", + "resolved": + "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", "requires": { "graceful-fs": "4.1.11", @@ -1476,7 +1602,8 @@ }, "parse-glob": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "resolved": + "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "optional": true, "requires": { @@ -1488,12 +1615,14 @@ }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "resolved": + "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "performance-now": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "resolved": + "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, "preserve": { @@ -1510,17 +1639,20 @@ }, "prism-media": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/prism-media/-/prism-media-0.0.1.tgz", + "resolved": + "https://registry.npmjs.org/prism-media/-/prism-media-0.0.1.tgz", "integrity": "sha1-o0JcnKvVDRxsAuVDlBoRiVZnvRA=" }, "private": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==" + "integrity": + "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==" }, "process-nextick-args": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "resolved": + "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" }, "punycode": { @@ -1531,12 +1663,15 @@ "qs": { "version": "6.5.1", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" + "integrity": + "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" }, "randomatic": { "version": "1.1.7", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", - "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", + "resolved": + "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", + "integrity": + "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", "optional": true, "requires": { "is-number": "3.0.0", @@ -1545,7 +1680,8 @@ "dependencies": { "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "resolved": + "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "optional": true, "requires": { @@ -1554,7 +1690,8 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "resolved": + "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "optional": true, "requires": { @@ -1576,8 +1713,10 @@ }, "readable-stream": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "resolved": + "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": + "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", "optional": true, "requires": { "core-util-is": "1.0.2", @@ -1603,13 +1742,17 @@ }, "regenerator-runtime": { "version": "0.11.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", - "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==" + "resolved": + "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": + "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==" }, "regex-cache": { "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "resolved": + "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": + "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "optional": true, "requires": { "is-equal-shallow": "0.1.3" @@ -1617,22 +1760,26 @@ }, "regexp-clone": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-0.0.1.tgz", + "resolved": + "https://registry.npmjs.org/regexp-clone/-/regexp-clone-0.0.1.tgz", "integrity": "sha1-p8LgmJH9vzj7sQ03b7cwA+aKxYk=" }, "remove-trailing-separator": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "resolved": + "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" }, "repeat-element": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "resolved": + "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=" }, "repeat-string": { "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "resolved": + "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "optional": true }, @@ -1647,7 +1794,8 @@ "request": { "version": "2.83.0", "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", - "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", + "integrity": + "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", "requires": { "aws-sign2": "0.7.0", "aws4": "1.6.0", @@ -1675,8 +1823,10 @@ }, "require_optional": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", - "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", + "resolved": + "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", + "integrity": + "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", "requires": { "resolve-from": "2.0.0", "semver": "5.4.1" @@ -1684,22 +1834,27 @@ }, "resolve-from": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", + "resolved": + "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" }, "safe-buffer": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + "resolved": + "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": + "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" }, "semver": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==" + "integrity": + "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==" }, "set-immediate-shim": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "resolved": + "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", "optional": true }, @@ -1716,25 +1871,30 @@ "snekfetch": { "version": "3.5.8", "resolved": "https://registry.npmjs.org/snekfetch/-/snekfetch-3.5.8.tgz", - "integrity": "sha512-osq7soqKBObV4u/WE9tGQT/m5JdqTU1PWVPcT0We3sKZ99h9QA7wSj7ZWrwEwgRbELeO5BrVCanYjDYtVYcwrQ==" + "integrity": + "sha512-osq7soqKBObV4u/WE9tGQT/m5JdqTU1PWVPcT0We3sKZ99h9QA7wSj7ZWrwEwgRbELeO5BrVCanYjDYtVYcwrQ==" }, "sntp": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", - "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", + "integrity": + "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", "requires": { "hoek": "4.2.0" } }, "source-map": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "resolved": + "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, "source-map-support": { "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "resolved": + "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": + "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "requires": { "source-map": "0.5.7" } @@ -1756,7 +1916,8 @@ "dependencies": { "tweetnacl": { "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "resolved": + "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "optional": true } @@ -1764,7 +1925,8 @@ }, "static-eval": { "version": "0.2.3", - "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-0.2.3.tgz", + "resolved": + "https://registry.npmjs.org/static-eval/-/static-eval-0.2.3.tgz", "integrity": "sha1-Aj8XrJ/uQm6niMEuo5IG3Bdfiyo=", "requires": { "escodegen": "0.0.28" @@ -1772,7 +1934,8 @@ "dependencies": { "escodegen": { "version": "0.0.28", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-0.0.28.tgz", + "resolved": + "https://registry.npmjs.org/escodegen/-/escodegen-0.0.28.tgz", "integrity": "sha1-Dk/xcV8yh3XWyrUaxEpAbNer/9M=", "requires": { "esprima": "1.0.4", @@ -1787,27 +1950,32 @@ }, "estraverse": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.3.2.tgz", + "resolved": + "https://registry.npmjs.org/estraverse/-/estraverse-1.3.2.tgz", "integrity": "sha1-N8K4k+8T1yPydth41g2FNRUqbEI=" } } }, "string_decoder": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "resolved": + "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": + "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "requires": { "safe-buffer": "5.1.1" } }, "stringstream": { "version": "0.0.5", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "resolved": + "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "resolved": + "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { "ansi-regex": "2.1.1" @@ -1815,17 +1983,20 @@ }, "supports-color": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "resolved": + "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" }, "to-fast-properties": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "resolved": + "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" }, "tough-cookie": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", + "resolved": + "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", "requires": { "punycode": "1.4.1" @@ -1833,12 +2004,14 @@ }, "trim-right": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "resolved": + "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" }, "tunnel-agent": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "resolved": + "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { "safe-buffer": "5.1.1" @@ -1856,7 +2029,8 @@ }, "underscore": { "version": "1.7.0", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", + "resolved": + "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=" }, "user-home": { @@ -1866,13 +2040,15 @@ }, "util-deprecate": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "resolved": + "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "uuid": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" + "integrity": + "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" }, "v8flags": { "version": "2.1.1", @@ -1900,7 +2076,8 @@ "ws": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.0.tgz", - "integrity": "sha512-XPwGf44sJI6zgBpiWk44HQG6pK7HABl4F77Uydtb6BcgTC8fFpXHKM8bGu4AdBMtIjREDbNlvGitRZnwi0vXCA==", + "integrity": + "sha512-XPwGf44sJI6zgBpiWk44HQG6pK7HABl4F77Uydtb6BcgTC8fFpXHKM8bGu4AdBMtIjREDbNlvGitRZnwi0vXCA==", "requires": { "async-limiter": "1.0.0", "safe-buffer": "5.1.1",