Pushing changes

This commit is contained in:
Matt Burchett 2017-03-23 23:52:08 -05:00
parent 6075860b82
commit ac667ec74f
1465 changed files with 345149 additions and 3 deletions

42
bot.js
View File

@ -4,6 +4,9 @@ var Discordie = require('discordie');
// Require log4js for logging to files
var log4js = require('log4js');
// require moment-timezone for timezone conversion
var Moment = require('moment-timezone');
// require custom settings
var config = require('./config.json');
@ -60,8 +63,19 @@ setInterval(function() {
e.message.channel.sendMessage("*gives " + e.message.author.nickMention + " a strip of delicious bacon.* ")
// !cookie
if (e.message.content == "!cookie")
// if (e.message.content.indexOf("!cookie") >=0) {
if (e.message.content == "!cookie") {
e.message.channel.sendMessage("*gives " + e.message.author.nickMention + " a freshly made Oatmeal Raisin cookie.*")
// if (e.message.content !== "!cookie") {
// var input = e.message.content
// var fields = input.split(' ', 2)
// var user = client.Users.find(u => u.username == fields[1]);
// e.message.channel.sendMessage("*gives " + user.mention[fields[1] + " a freshly made Oatmeal Raisin cookie.*")
// } else {
// e.message.channel.sendMessage("*gives " + e.message.author.nickMention + " a freshly made Oatmeal Raisin cookie.*")
// }
}
// !help
if (e.message.content == "!help")
@ -88,12 +102,12 @@ setInterval(function() {
// fist bump
if (e.message.content == "*fist bump*" || e.message.content == "*fistbump*")
e.message.channel.sendMessage("Ba-la-la-la-la! \r\r\
https://cdn.discordapp.com/attachments/265064665099403264/294327036388835328/giphy-3.gif")
https://cdn.discordapp.com/attachments/265064665099403264/294327036388835328/giphy-3.gif");
// !lollipop
if (e.message.content == "I'm satisfied with my care.")
e.message.channel.sendMessage("You have been good, have a lollipop! \r\r\
https://cdn.discordapp.com/attachments/265064665099403264/294333704749449216/Baemax-baymax-lollipop.gif")
https://cdn.discordapp.com/attachments/265064665099403264/294333704749449216/Baemax-baymax-lollipop.gif");
// end Baymax easter eggs
// begin misc chat triggers
@ -103,6 +117,28 @@ setInterval(function() {
e.message.channel.sendMessage("*mic drop*");
// end misc chat triggers
// begin mod-only command
if (e.message.channel.name == "mod" || e.message.channel.name == "helpers" ) {
// !birthday
if (e.message.content == "!birthday")
e.message.channel.sendMessage("List of Moderator Birthdays:\r\r\
arielhasfins: 1992-07-21\r\
Nanako: 1994-08-18\r\
WARBIRD199: 1994-12-19\r\
bluedinosaursocks: 1995-01-07\r\
Meep: 1995-01-17");
// !time
if (e.message.content == "!time")
e.message.channel.sendMessage("List of Moderator Timezones:\r\r\
America/Phoenix: " + Moment().tz('America/Phoenix').format('YYYY/MM/DD | HH:mm:ss zz') + "\r\
America/Chicago: " + Moment().tz('America/Chicago').format('YYYY/MM/DD | HH:mm:ss zz') + "\r\
America/New_York: " + Moment().tz('America/New_York').format('YYYY/MM/DD | HH:mm:ss zz') + "\r\
Asia/Singapore: " + Moment().tz('Asia/Singapore').format('YYYY/MM/DD | HH:mm:ss zz'))
}
}
});

6
config.json Normal file
View File

@ -0,0 +1,6 @@
{
"bot_token": "MjI3Mjg0MjQxMjQ1OTI5NDcy.C7TLvA.mUGWHxjW0gG71kaL-F93VMzw95E",
"guild_id": "173239631867805703",
"guild_name": "/r/littlespace",
"reconnect": "3600000"
}

4945
logs/activeusers.log Normal file

File diff suppressed because it is too large Load Diff

4627
logs/channels.log Normal file

File diff suppressed because it is too large Load Diff

476
logs/console.log Normal file
View File

@ -0,0 +1,476 @@
[2017-03-21 20:24:11.234] [INFO] console - Connected as: stats-bot
[2017-03-21 20:24:41.733] [INFO] console - Connected as: stats-bot
[2017-03-21 20:25:32.920] [INFO] console - Connected as: stats-bot
[2017-03-22 00:03:03.878] [INFO] console - Connected as: stats-bot
[2017-03-22 00:05:01.750] [INFO] console - Connected as: stats-bot
[2017-03-22 00:05:07.165] [INFO] console - Connected as: stats-bot
[2017-03-22 00:06:13.233] [INFO] console - Connected as: stats-bot
[2017-03-22 00:06:18.343] [INFO] console - Connected as: stats-bot
[2017-03-22 00:09:04.601] [INFO] console - Connected as: stats-bot
[2017-03-22 00:10:26.250] [INFO] console - Connected as: stats-bot
[2017-03-22 00:11:36.701] [INFO] console - Connected as: stats-bot
[2017-03-22 00:12:05.436] [INFO] console - Connected as: stats-bot
[2017-03-22 01:33:09.603] [INFO] console - Connected as: stats-bot
[2017-03-22 01:51:40.566] [INFO] console - Connected as: stats-bot
[2017-03-22 16:27:57.930] [INFO] console - Connected as: stats-bot
[2017-03-22 16:29:11.703] [INFO] console - Connected as: stats-bot
[2017-03-22 20:44:42.940] [INFO] console - Connected as: stats-bot
[2017-03-22 20:49:08.659] [INFO] console - Connected as: stats-bot
[2017-03-22 20:49:13.740] [INFO] console - Connected as: stats-bot
[2017-03-22 20:55:05.507] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:13.078] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:13.111] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:13.142] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:13.173] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:13.206] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:13.236] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:13.267] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:13.298] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:13.329] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:13.360] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:13.390] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:13.421] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:13.452] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:13.483] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:13.512] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:13.543] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:13.573] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:13.604] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:13.634] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:13.663] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:13.694] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:13.723] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:13.754] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:13.784] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:13.815] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:13.845] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:13.876] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:13.907] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:13.938] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:13.969] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:13.999] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:14.028] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:14.059] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:14.089] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:14.120] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:14.152] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:14.183] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:14.214] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:14.243] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:14.274] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:14.304] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:14.335] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:14.364] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:14.395] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:14.426] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:14.457] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:14.487] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:14.518] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:14.547] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:14.579] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:14.609] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:14.640] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:14.670] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:14.702] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:14.733] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:14.764] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:14.793] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:14.824] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:14.855] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:14.885] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:14.916] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:14.946] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:14.977] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:15.007] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:15.037] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:15.067] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:15.099] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:15.130] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:15.162] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:15.191] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:15.222] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:15.251] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:15.284] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:15.313] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:15.343] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:15.374] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:15.405] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:15.434] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:15.465] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:15.495] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:15.527] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:15.556] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:15.587] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:15.617] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:15.649] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:15.680] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:15.709] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:15.740] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:15.769] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:15.800] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:15.831] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:15.861] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:15.892] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:15.922] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:15.953] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:15.983] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:16.013] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:16.044] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:16.075] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:16.106] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:16.136] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:16.167] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:16.198] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:16.229] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:16.258] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:16.289] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:16.319] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:16.349] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:16.379] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:16.410] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:16.441] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:16.471] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:16.501] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:16.532] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:16.563] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:16.593] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:16.623] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:16.653] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:16.684] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:16.715] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:16.745] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:16.776] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:16.807] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:16.837] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:16.867] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:16.897] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:16.928] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:16.958] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:16.988] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:17.019] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:17.050] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:17.082] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:17.118] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:17.149] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:17.180] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:17.210] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:17.241] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:17.273] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:17.303] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:17.334] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:17.364] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:17.395] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:17.425] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:17.455] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:17.485] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:17.516] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:17.546] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:17.576] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:17.607] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:17.637] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:17.668] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:17.698] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:17.729] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:17.759] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:17.789] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:17.819] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:17.850] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:17.880] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:17.911] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:17.941] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:17.971] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:18.002] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:18.033] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:18.064] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:18.094] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:18.125] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:18.155] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:18.187] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:18.219] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:18.248] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:18.279] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:18.309] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:18.339] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:18.369] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:18.399] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:18.429] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:18.459] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:18.490] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:18.520] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:18.550] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:18.581] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:18.612] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:18.643] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:18.673] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:18.704] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:18.733] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:18.764] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:18.795] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:18.825] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:18.856] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:18.887] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:18.918] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:18.949] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:18.979] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:19.009] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:19.039] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:19.070] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:19.102] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:19.132] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:19.162] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:19.193] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:19.224] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:19.254] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:19.285] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:19.315] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:19.345] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:19.376] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:19.407] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:19.437] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:19.468] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:19.498] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:19.529] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:19.559] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:19.589] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:19.620] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:19.650] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:19.680] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:19.711] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:19.742] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:19.773] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:19.803] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:19.832] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:19.863] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:19.894] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:19.924] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:19.954] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:19.985] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:20.016] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:20.046] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:20.077] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:20.108] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:20.139] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:20.168] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:20.198] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:20.229] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:20.259] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:20.290] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:20.320] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:20.350] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:20.381] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:20.411] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:20.441] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:20.471] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:20.501] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:20.532] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:20.562] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:20.592] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:20.622] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:20.652] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:20.682] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:20.713] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:20.743] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:20.774] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:20.804] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:20.834] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:20.863] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:20.893] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:20.923] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:20.954] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:20.985] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:21.014] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:21.045] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:21.075] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:21.107] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:21.136] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:21.167] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:21.197] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:21.228] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:21.258] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:21.289] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:21.319] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:21.349] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:21.380] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:21.410] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:21.440] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:21.471] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:21.501] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:21.530] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:21.561] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:21.592] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:21.622] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:21.651] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:21.682] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:21.712] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:21.743] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:21.773] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:21.803] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:21.832] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:21.863] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:21.893] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:21.923] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:21.953] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:21.984] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:22.014] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:22.044] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:22.074] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:22.105] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:22.135] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:22.166] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:22.197] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:22.227] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:22.258] [INFO] console - Reconnecting to server per timeout of 30ms.
[2017-03-22 20:55:25.588] [INFO] console - Reconnecting to server per timeout of 300ms.
[2017-03-22 20:55:25.892] [INFO] console - Reconnecting to server per timeout of 300ms.
[2017-03-22 20:55:26.193] [INFO] console - Reconnecting to server per timeout of 300ms.
[2017-03-22 20:55:26.495] [INFO] console - Reconnecting to server per timeout of 300ms.
[2017-03-22 20:55:26.796] [INFO] console - Reconnecting to server per timeout of 300ms.
[2017-03-22 20:55:27.097] [INFO] console - Reconnecting to server per timeout of 300ms.
[2017-03-22 20:55:27.399] [INFO] console - Reconnecting to server per timeout of 300ms.
[2017-03-22 20:55:27.701] [INFO] console - Reconnecting to server per timeout of 300ms.
[2017-03-22 20:55:28.002] [INFO] console - Reconnecting to server per timeout of 300ms.
[2017-03-22 20:55:28.304] [INFO] console - Reconnecting to server per timeout of 300ms.
[2017-03-22 20:55:28.605] [INFO] console - Reconnecting to server per timeout of 300ms.
[2017-03-22 20:55:28.906] [INFO] console - Reconnecting to server per timeout of 300ms.
[2017-03-22 20:55:29.209] [INFO] console - Reconnecting to server per timeout of 300ms.
[2017-03-22 20:55:29.510] [INFO] console - Reconnecting to server per timeout of 300ms.
[2017-03-22 20:55:29.815] [INFO] console - Reconnecting to server per timeout of 300ms.
[2017-03-22 20:55:31.034] [INFO] console - Connected as: stats-bot
[2017-03-22 20:55:33.221] [INFO] console - Reconnecting to server per timeout of 3000ms.
[2017-03-22 20:55:36.088] [INFO] console - Connected as: stats-bot
[2017-03-22 20:55:36.224] [INFO] console - Reconnecting to server per timeout of 3000ms.
[2017-03-22 20:55:41.206] [INFO] console - Connected as: stats-bot
[2017-03-22 20:55:56.460] [INFO] console - Connected as: stats-bot
[2017-03-22 20:57:10.944] [INFO] console - Connected as: stats-bot
[2017-03-22 20:57:38.722] [INFO] console - Connected as: stats-bot
[2017-03-22 21:57:38.261] [INFO] console - Reconnecting to server per timeout of 3600000ms.
[2017-03-22 21:57:38.756] [INFO] console - Connected as: stats-bot
[2017-03-22 21:59:09.542] [INFO] console - Connected as: stats-bot
[2017-03-22 22:01:15.236] [INFO] console - Connected as: Thor
[2017-03-22 22:01:26.223] [INFO] console - Connected as: Thor
[2017-03-22 22:02:52.814] [INFO] console - Connected as: Thor
[2017-03-22 22:03:26.951] [INFO] console - Connected as: Thor
[2017-03-22 22:04:52.509] [INFO] console - Connected as: Thor
[2017-03-22 22:05:16.163] [INFO] console - Connected as: Thor
[2017-03-22 22:06:48.432] [INFO] console - Connected as: Thor
[2017-03-22 22:10:14.901] [INFO] console - Connected as: Thor
[2017-03-22 22:10:25.688] [INFO] console - Connected as: Thor
[2017-03-22 22:10:30.769] [INFO] console - Connected as: Thor
[2017-03-22 22:10:45.443] [INFO] console - Connected as: Thor
[2017-03-22 22:11:44.211] [INFO] console - Connected as: Thor
[2017-03-22 22:11:55.264] [INFO] console - Connected as: Thor
[2017-03-22 22:12:04.737] [INFO] console - Connected as: Thor
[2017-03-22 22:15:43.228] [INFO] console - Connected as: Thor
[2017-03-22 22:19:20.065] [INFO] console - Connected as: Thor
[2017-03-22 22:21:34.148] [INFO] console - Connected as: Thor
[2017-03-22 22:25:14.795] [INFO] console - Connected as: Thor
[2017-03-22 22:26:35.644] [INFO] console - Connected as: Thor
[2017-03-22 22:28:36.382] [INFO] console - Connected as: Thor
[2017-03-22 22:28:56.101] [INFO] console - Connected as: Thor
[2017-03-22 22:35:31.968] [INFO] console - Connected as: Thor
[2017-03-22 22:37:02.982] [INFO] console - Connected as: Thor
[2017-03-22 22:37:49.873] [INFO] console - Connected as: Thor
[2017-03-22 22:38:19.730] [INFO] console - Connected as: Thor
[2017-03-22 22:38:34.573] [INFO] console - Connected as: Thor
[2017-03-22 22:40:24.172] [INFO] console - Connected as: Thor
[2017-03-22 22:40:39.878] [INFO] console - Connected as: Thor
[2017-03-22 22:40:45.521] [INFO] console - Connected as: Thor
[2017-03-22 23:09:56.832] [INFO] console - Connected as: Thor
[2017-03-22 23:10:17.934] [INFO] console - Connected as: Thor
[2017-03-22 23:10:45.405] [INFO] console - Connected as: Thor
[2017-03-22 23:13:07.241] [INFO] console - Connected as: Thor
[2017-03-22 23:20:46.510] [INFO] console - Connected as: Thor
[2017-03-22 23:21:04.288] [INFO] console - Connected as: Thor
[2017-03-22 23:21:13.505] [INFO] console - Connected as: Thor
[2017-03-22 23:24:58.934] [INFO] console - Connected as: Thor
[2017-03-22 23:29:47.481] [INFO] console - Connected as: Thor
[2017-03-22 23:30:50.389] [INFO] console - Connected as: Thor
[2017-03-22 23:30:55.463] [INFO] console - Connected as: Thor
[2017-03-22 23:38:16.915] [INFO] console - Connected as: Thor
[2017-03-22 23:38:26.224] [INFO] console - Connected as: Thor
[2017-03-22 23:48:51.840] [INFO] console - Connected as: Thor
[2017-03-22 23:50:23.588] [INFO] console - Connected as: Thor
[2017-03-22 23:51:12.304] [INFO] console - Connected as: Thor
[2017-03-22 23:51:25.996] [INFO] console - Connected as: Thor
[2017-03-22 23:57:23.673] [INFO] console - Connected as: Thor
[2017-03-22 23:57:53.989] [INFO] console - Connected as: Thor
[2017-03-23 00:03:24.791] [INFO] console - Connected as: Thor
[2017-03-23 01:03:24.213] [INFO] console - Reconnecting to server per timeout of 3600000ms.
[2017-03-23 01:03:24.892] [INFO] console - Connected as: Thor
[2017-03-23 02:03:24.222] [INFO] console - Reconnecting to server per timeout of 3600000ms.
[2017-03-23 02:03:24.803] [INFO] console - Connected as: Thor
[2017-03-23 02:11:40.007] [INFO] console - Connected as: Thor
[2017-03-23 02:17:36.066] [INFO] console - Connected as: Thor
[2017-03-23 03:17:35.473] [INFO] console - Reconnecting to server per timeout of 3600000ms.
[2017-03-23 03:17:36.007] [INFO] console - Connected as: Thor
[2017-03-23 13:23:26.522] [INFO] console - Connected as: Thor
[2017-03-23 13:26:04.269] [INFO] console - Connected as: Thor
[2017-03-23 14:26:03.785] [INFO] console - Reconnecting to server per timeout of 3600000ms.
[2017-03-23 14:26:04.681] [INFO] console - Connected as: Thor
[2017-03-23 15:26:03.790] [INFO] console - Reconnecting to server per timeout of 3600000ms.
[2017-03-23 15:26:04.374] [INFO] console - Connected as: Thor
[2017-03-23 16:26:03.792] [INFO] console - Reconnecting to server per timeout of 3600000ms.
[2017-03-23 16:26:04.443] [INFO] console - Connected as: Thor
[2017-03-23 17:30:11.641] [INFO] console - Connected as: Thor
[2017-03-23 17:30:32.300] [INFO] console - Connected as: Thor
[2017-03-23 17:30:51.795] [INFO] console - Connected as: Thor
[2017-03-23 17:31:37.464] [INFO] console - Connected as: Thor
[2017-03-23 17:53:14.611] [INFO] console - Connected as: Thor
[2017-03-23 17:57:24.703] [INFO] console - Connected as: Thor
[2017-03-23 17:57:43.349] [INFO] console - Connected as: Thor
[2017-03-23 17:57:53.624] [INFO] console - Connected as: Thor
[2017-03-23 17:58:11.959] [INFO] console - Connected as: Thor
[2017-03-23 17:59:17.838] [INFO] console - Connected as: Thor
[2017-03-23 18:11:19.797] [INFO] console - Connected as: Thor
[2017-03-23 19:11:19.145] [INFO] console - Reconnecting to server per timeout of 3600000ms.
[2017-03-23 19:11:19.714] [INFO] console - Connected as: Thor
[2017-03-23 20:11:19.148] [INFO] console - Reconnecting to server per timeout of 3600000ms.
[2017-03-23 20:11:19.744] [INFO] console - Connected as: Thor
[2017-03-23 20:23:37.003] [INFO] console - Connected as: Thor
[2017-03-23 20:25:33.791] [INFO] console - Connected as: Thor
[2017-03-23 20:25:56.903] [INFO] console - Connected as: Thor
[2017-03-23 20:26:41.441] [INFO] console - Connected as: Thor
[2017-03-23 20:27:05.159] [INFO] console - Connected as: Thor
[2017-03-23 20:28:32.519] [INFO] console - Connected as: Thor
[2017-03-23 20:29:00.961] [INFO] console - Connected as: Thor
[2017-03-23 20:30:56.524] [INFO] console - Connected as: Thor
[2017-03-23 20:31:20.039] [INFO] console - Connected as: Thor
[2017-03-23 20:32:06.086] [INFO] console - Connected as: Thor
[2017-03-23 20:32:17.176] [INFO] console - Connected as: Thor
[2017-03-23 20:32:29.880] [INFO] console - Connected as: Thor
[2017-03-23 20:33:18.390] [INFO] console - Connected as: Thor
[2017-03-23 20:33:37.109] [INFO] console - Connected as: Thor
[2017-03-23 20:33:47.385] [INFO] console - Connected as: Thor
[2017-03-23 20:37:36.961] [INFO] console - Connected as: Thor
[2017-03-23 20:38:08.773] [INFO] console - Connected as: Thor
[2017-03-23 20:38:38.185] [INFO] console - Connected as: Thor
[2017-03-23 20:38:47.731] [INFO] console - Connected as: Thor
[2017-03-23 20:38:56.739] [INFO] console - Connected as: Thor
[2017-03-23 20:39:21.942] [INFO] console - Connected as: Thor
[2017-03-23 20:41:28.845] [INFO] console - Connected as: Thor
[2017-03-23 20:41:39.090] [INFO] console - Connected as: Thor
[2017-03-23 20:41:48.135] [INFO] console - Connected as: Thor
[2017-03-23 20:42:35.412] [INFO] console - Connected as: Thor
[2017-03-23 20:42:43.120] [INFO] console - Connected as: Thor
[2017-03-23 20:42:48.206] [INFO] console - Connected as: Thor
[2017-03-23 20:43:50.293] [INFO] console - Connected as: Thor
[2017-03-23 20:46:54.681] [INFO] console - Connected as: Thor
[2017-03-23 20:50:05.288] [INFO] console - Connected as: Thor
[2017-03-23 20:50:27.543] [INFO] console - Connected as: Thor
[2017-03-23 20:51:04.547] [INFO] console - Connected as: Thor
[2017-03-23 20:51:29.410] [INFO] console - Connected as: Thor
[2017-03-23 20:52:20.842] [INFO] console - Connected as: Thor
[2017-03-23 20:52:35.009] [INFO] console - Connected as: Thor
[2017-03-23 20:52:45.397] [INFO] console - Connected as: Thor
[2017-03-23 20:53:01.720] [INFO] console - Connected as: Thor
[2017-03-23 20:53:16.609] [INFO] console - Connected as: Thor
[2017-03-23 21:13:06.040] [INFO] console - Connected as: Thor
[2017-03-23 21:13:31.156] [INFO] console - Connected as: Thor
[2017-03-23 21:13:36.248] [INFO] console - Connected as: Thor
[2017-03-23 22:01:21.896] [INFO] console - Disconnected from server ...
[2017-03-23 22:01:21.897] [INFO] console - Reconnecting to Discord ...
[2017-03-23 22:01:23.099] [INFO] console - Connected as: Thor
[2017-03-23 22:13:33.477] [INFO] console - Reconnecting to server per timeout of 3600000ms.
[2017-03-23 22:13:34.074] [INFO] console - Connected as: Thor
[2017-03-23 23:13:33.479] [INFO] console - Reconnecting to server per timeout of 3600000ms.
[2017-03-23 23:13:34.071] [INFO] console - Connected as: Thor

1
node_modules/.bin/dateformat generated vendored Symbolic link
View File

@ -0,0 +1 @@
../dateformat/bin/cli.js

1
node_modules/.bin/mime generated vendored Symbolic link
View File

@ -0,0 +1 @@
../mime/cli.js

1
node_modules/.bin/mkdirp generated vendored Symbolic link
View File

@ -0,0 +1 @@
../mkdirp/bin/cmd.js

1
node_modules/.bin/semver generated vendored Symbolic link
View File

@ -0,0 +1 @@
../semver/bin/semver

1
node_modules/.bin/strip-indent generated vendored Symbolic link
View File

@ -0,0 +1 @@
../strip-indent/cli.js

4
node_modules/ansi-regex/index.js generated vendored Normal file
View File

@ -0,0 +1,4 @@
'use strict';
module.exports = function () {
return /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-PRZcf-nqry=><]/g;
};

21
node_modules/ansi-regex/license generated vendored Normal file
View File

@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
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.

132
node_modules/ansi-regex/package.json generated vendored Normal file
View File

@ -0,0 +1,132 @@
{
"_args": [
[
{
"raw": "ansi-regex@^2.0.0",
"scope": null,
"escapedName": "ansi-regex",
"name": "ansi-regex",
"rawSpec": "^2.0.0",
"spec": ">=2.0.0 <3.0.0",
"type": "range"
},
"/home/burchettm/statsbot/node_modules/has-ansi"
]
],
"_from": "ansi-regex@>=2.0.0 <3.0.0",
"_id": "ansi-regex@2.1.1",
"_inCache": true,
"_location": "/ansi-regex",
"_nodeVersion": "0.10.32",
"_npmOperationalInternal": {
"host": "packages-18-east.internal.npmjs.com",
"tmp": "tmp/ansi-regex-2.1.1.tgz_1484363378013_0.4482989883981645"
},
"_npmUser": {
"name": "qix",
"email": "i.am.qix@gmail.com"
},
"_npmVersion": "2.14.2",
"_phantomChildren": {},
"_requested": {
"raw": "ansi-regex@^2.0.0",
"scope": null,
"escapedName": "ansi-regex",
"name": "ansi-regex",
"rawSpec": "^2.0.0",
"spec": ">=2.0.0 <3.0.0",
"type": "range"
},
"_requiredBy": [
"/has-ansi",
"/strip-ansi"
],
"_resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
"_shasum": "c3b33ab5ee360d86e0e628f0468ae7ef27d654df",
"_shrinkwrap": null,
"_spec": "ansi-regex@^2.0.0",
"_where": "/home/burchettm/statsbot/node_modules/has-ansi",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
"url": "sindresorhus.com"
},
"bugs": {
"url": "https://github.com/chalk/ansi-regex/issues"
},
"dependencies": {},
"description": "Regular expression for matching ANSI escape codes",
"devDependencies": {
"ava": "0.17.0",
"xo": "0.16.0"
},
"directories": {},
"dist": {
"shasum": "c3b33ab5ee360d86e0e628f0468ae7ef27d654df",
"tarball": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"
},
"engines": {
"node": ">=0.10.0"
},
"files": [
"index.js"
],
"gitHead": "7c908e7b4eb6cd82bfe1295e33fdf6d166c7ed85",
"homepage": "https://github.com/chalk/ansi-regex#readme",
"keywords": [
"ansi",
"styles",
"color",
"colour",
"colors",
"terminal",
"console",
"cli",
"string",
"tty",
"escape",
"formatting",
"rgb",
"256",
"shell",
"xterm",
"command-line",
"text",
"regex",
"regexp",
"re",
"match",
"test",
"find",
"pattern"
],
"license": "MIT",
"maintainers": [
{
"name": "qix",
"email": "i.am.qix@gmail.com"
},
{
"name": "sindresorhus",
"email": "sindresorhus@gmail.com"
}
],
"name": "ansi-regex",
"optionalDependencies": {},
"readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git+https://github.com/chalk/ansi-regex.git"
},
"scripts": {
"test": "xo && ava --verbose",
"view-supported": "node fixtures/view-codes.js"
},
"version": "2.1.1",
"xo": {
"rules": {
"guard-for-in": 0,
"no-loop-func": 0
}
}
}

39
node_modules/ansi-regex/readme.md generated vendored Normal file
View File

@ -0,0 +1,39 @@
# ansi-regex [![Build Status](https://travis-ci.org/chalk/ansi-regex.svg?branch=master)](https://travis-ci.org/chalk/ansi-regex)
> Regular expression for matching [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code)
## Install
```
$ npm install --save ansi-regex
```
## Usage
```js
const ansiRegex = require('ansi-regex');
ansiRegex().test('\u001b[4mcake\u001b[0m');
//=> true
ansiRegex().test('cake');
//=> false
'\u001b[4mcake\u001b[0m'.match(ansiRegex());
//=> ['\u001b[4m', '\u001b[0m']
```
## FAQ
### Why do you test for codes not in the ECMA 48 standard?
Some of the codes we run as a test are codes that we acquired finding various lists of non-standard or manufacturer specific codes. If I recall correctly, we test for both standard and non-standard codes, as most of them follow the same or similar format and can be safely matched in strings without the risk of removing actual string content. There are a few non-standard control codes that do not follow the traditional format (i.e. they end in numbers) thus forcing us to exclude them from the test because we cannot reliably match them.
On the historical side, those ECMA standards were established in the early 90's whereas the VT100, for example, was designed in the mid/late 70's. At that point in time, control codes were still pretty ungoverned and engineers used them for a multitude of things, namely to activate hardware ports that may have been proprietary. Somewhere else you see a similar 'anarchy' of codes is in the x86 architecture for processors; there are a ton of "interrupts" that can mean different things on certain brands of processors, most of which have been phased out.
## License
MIT © [Sindre Sorhus](http://sindresorhus.com)

65
node_modules/ansi-styles/index.js generated vendored Normal file
View File

@ -0,0 +1,65 @@
'use strict';
function assembleStyles () {
var styles = {
modifiers: {
reset: [0, 0],
bold: [1, 22], // 21 isn't widely supported and 22 does the same thing
dim: [2, 22],
italic: [3, 23],
underline: [4, 24],
inverse: [7, 27],
hidden: [8, 28],
strikethrough: [9, 29]
},
colors: {
black: [30, 39],
red: [31, 39],
green: [32, 39],
yellow: [33, 39],
blue: [34, 39],
magenta: [35, 39],
cyan: [36, 39],
white: [37, 39],
gray: [90, 39]
},
bgColors: {
bgBlack: [40, 49],
bgRed: [41, 49],
bgGreen: [42, 49],
bgYellow: [43, 49],
bgBlue: [44, 49],
bgMagenta: [45, 49],
bgCyan: [46, 49],
bgWhite: [47, 49]
}
};
// fix humans
styles.colors.grey = styles.colors.gray;
Object.keys(styles).forEach(function (groupName) {
var group = styles[groupName];
Object.keys(group).forEach(function (styleName) {
var style = group[styleName];
styles[styleName] = group[styleName] = {
open: '\u001b[' + style[0] + 'm',
close: '\u001b[' + style[1] + 'm'
};
});
Object.defineProperty(styles, groupName, {
value: group,
enumerable: false
});
});
return styles;
}
Object.defineProperty(module, 'exports', {
enumerable: true,
get: assembleStyles
});

21
node_modules/ansi-styles/license generated vendored Normal file
View File

@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
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.

114
node_modules/ansi-styles/package.json generated vendored Normal file
View File

@ -0,0 +1,114 @@
{
"_args": [
[
{
"raw": "ansi-styles@^2.2.1",
"scope": null,
"escapedName": "ansi-styles",
"name": "ansi-styles",
"rawSpec": "^2.2.1",
"spec": ">=2.2.1 <3.0.0",
"type": "range"
},
"/home/burchettm/statsbot/node_modules/chalk"
]
],
"_from": "ansi-styles@>=2.2.1 <3.0.0",
"_id": "ansi-styles@2.2.1",
"_inCache": true,
"_location": "/ansi-styles",
"_nodeVersion": "4.3.0",
"_npmOperationalInternal": {
"host": "packages-12-west.internal.npmjs.com",
"tmp": "tmp/ansi-styles-2.2.1.tgz_1459197317833_0.9694824463222176"
},
"_npmUser": {
"name": "sindresorhus",
"email": "sindresorhus@gmail.com"
},
"_npmVersion": "3.8.3",
"_phantomChildren": {},
"_requested": {
"raw": "ansi-styles@^2.2.1",
"scope": null,
"escapedName": "ansi-styles",
"name": "ansi-styles",
"rawSpec": "^2.2.1",
"spec": ">=2.2.1 <3.0.0",
"type": "range"
},
"_requiredBy": [
"/chalk"
],
"_resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
"_shasum": "b432dd3358b634cf75e1e4664368240533c1ddbe",
"_shrinkwrap": null,
"_spec": "ansi-styles@^2.2.1",
"_where": "/home/burchettm/statsbot/node_modules/chalk",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
"url": "sindresorhus.com"
},
"bugs": {
"url": "https://github.com/chalk/ansi-styles/issues"
},
"dependencies": {},
"description": "ANSI escape codes for styling strings in the terminal",
"devDependencies": {
"mocha": "*"
},
"directories": {},
"dist": {
"shasum": "b432dd3358b634cf75e1e4664368240533c1ddbe",
"tarball": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz"
},
"engines": {
"node": ">=0.10.0"
},
"files": [
"index.js"
],
"gitHead": "95c59b23be760108b6530ca1c89477c21b258032",
"homepage": "https://github.com/chalk/ansi-styles#readme",
"keywords": [
"ansi",
"styles",
"color",
"colour",
"colors",
"terminal",
"console",
"cli",
"string",
"tty",
"escape",
"formatting",
"rgb",
"256",
"shell",
"xterm",
"log",
"logging",
"command-line",
"text"
],
"license": "MIT",
"maintainers": [
{
"name": "sindresorhus",
"email": "sindresorhus@gmail.com"
}
],
"name": "ansi-styles",
"optionalDependencies": {},
"readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git+https://github.com/chalk/ansi-styles.git"
},
"scripts": {
"test": "mocha"
},
"version": "2.2.1"
}

86
node_modules/ansi-styles/readme.md generated vendored Normal file
View File

@ -0,0 +1,86 @@
# ansi-styles [![Build Status](https://travis-ci.org/chalk/ansi-styles.svg?branch=master)](https://travis-ci.org/chalk/ansi-styles)
> [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code#Colors_and_Styles) for styling strings in the terminal
You probably want the higher-level [chalk](https://github.com/chalk/chalk) module for styling your strings.
![](screenshot.png)
## Install
```
$ npm install --save ansi-styles
```
## Usage
```js
var ansi = require('ansi-styles');
console.log(ansi.green.open + 'Hello world!' + ansi.green.close);
```
## API
Each style has an `open` and `close` property.
## Styles
### Modifiers
- `reset`
- `bold`
- `dim`
- `italic` *(not widely supported)*
- `underline`
- `inverse`
- `hidden`
- `strikethrough` *(not widely supported)*
### Colors
- `black`
- `red`
- `green`
- `yellow`
- `blue`
- `magenta`
- `cyan`
- `white`
- `gray`
### Background colors
- `bgBlack`
- `bgRed`
- `bgGreen`
- `bgYellow`
- `bgBlue`
- `bgMagenta`
- `bgCyan`
- `bgWhite`
## Advanced usage
By default you get a map of styles, but the styles are also available as groups. They are non-enumerable so they don't show up unless you access them explicitly. This makes it easier to expose only a subset in a higher-level module.
- `ansi.modifiers`
- `ansi.colors`
- `ansi.bgColors`
###### Example
```js
console.log(ansi.colors.green.open);
```
## License
MIT © [Sindre Sorhus](http://sindresorhus.com)

25
node_modules/array-find-index/index.js generated vendored Normal file
View File

@ -0,0 +1,25 @@
'use strict';
module.exports = function (arr, predicate, ctx) {
if (typeof Array.prototype.findIndex === 'function') {
return arr.findIndex(predicate, ctx);
}
if (typeof predicate !== 'function') {
throw new TypeError('predicate must be a function');
}
var list = Object(arr);
var len = list.length;
if (len === 0) {
return -1;
}
for (var i = 0; i < len; i++) {
if (predicate.call(ctx, list[i], i, list)) {
return i;
}
}
return -1;
};

21
node_modules/array-find-index/license generated vendored Normal file
View File

@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
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.

103
node_modules/array-find-index/package.json generated vendored Normal file
View File

@ -0,0 +1,103 @@
{
"_args": [
[
{
"raw": "array-find-index@^1.0.1",
"scope": null,
"escapedName": "array-find-index",
"name": "array-find-index",
"rawSpec": "^1.0.1",
"spec": ">=1.0.1 <2.0.0",
"type": "range"
},
"/home/burchettm/statsbot/node_modules/currently-unhandled"
]
],
"_from": "array-find-index@>=1.0.1 <2.0.0",
"_id": "array-find-index@1.0.2",
"_inCache": true,
"_location": "/array-find-index",
"_nodeVersion": "4.5.0",
"_npmOperationalInternal": {
"host": "packages-12-west.internal.npmjs.com",
"tmp": "tmp/array-find-index-1.0.2.tgz_1475224789159_0.7274378235451877"
},
"_npmUser": {
"name": "sindresorhus",
"email": "sindresorhus@gmail.com"
},
"_npmVersion": "2.15.9",
"_phantomChildren": {},
"_requested": {
"raw": "array-find-index@^1.0.1",
"scope": null,
"escapedName": "array-find-index",
"name": "array-find-index",
"rawSpec": "^1.0.1",
"spec": ">=1.0.1 <2.0.0",
"type": "range"
},
"_requiredBy": [
"/currently-unhandled"
],
"_resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
"_shasum": "df010aa1287e164bbda6f9723b0a96a1ec4187a1",
"_shrinkwrap": null,
"_spec": "array-find-index@^1.0.1",
"_where": "/home/burchettm/statsbot/node_modules/currently-unhandled",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
"url": "sindresorhus.com"
},
"bugs": {
"url": "https://github.com/sindresorhus/array-find-index/issues"
},
"dependencies": {},
"description": "ES2015 `Array#findIndex()` ponyfill",
"devDependencies": {
"ava": "*",
"xo": "*"
},
"directories": {},
"dist": {
"shasum": "df010aa1287e164bbda6f9723b0a96a1ec4187a1",
"tarball": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz"
},
"engines": {
"node": ">=0.10.0"
},
"files": [
"index.js"
],
"gitHead": "983f4c827ad22fa0353182b1ddcbfaecd4412859",
"homepage": "https://github.com/sindresorhus/array-find-index#readme",
"keywords": [
"es2015",
"ponyfill",
"polyfill",
"shim",
"find",
"index",
"findindex",
"array"
],
"license": "MIT",
"maintainers": [
{
"name": "sindresorhus",
"email": "sindresorhus@gmail.com"
}
],
"name": "array-find-index",
"optionalDependencies": {},
"readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git+https://github.com/sindresorhus/array-find-index.git"
},
"scripts": {
"test": "xo && ava"
},
"version": "1.0.2"
}

30
node_modules/array-find-index/readme.md generated vendored Normal file
View File

@ -0,0 +1,30 @@
# array-find-index [![Build Status](https://travis-ci.org/sindresorhus/array-find-index.svg?branch=master)](https://travis-ci.org/sindresorhus/array-find-index)
> ES2015 [`Array#findIndex()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex) [ponyfill](https://ponyfill.com)
## Install
```
$ npm install --save array-find-index
```
## Usage
```js
const arrayFindIndex = require('array-find-index');
arrayFindIndex(['rainbow', 'unicorn', 'pony'], x => x === 'unicorn');
//=> 1
```
## API
Same as `Array#findIndex()`, but with the input array as the first argument.
## License
MIT © [Sindre Sorhus](https://sindresorhus.com)

125
node_modules/async/CHANGELOG.md generated vendored Normal file
View File

@ -0,0 +1,125 @@
# v1.5.2
- Allow using `"consructor"` as an argument in `memoize` (#998)
- Give a better error messsage when `auto` dependency checking fails (#994)
- Various doc updates (#936, #956, #979, #1002)
# v1.5.1
- Fix issue with `pause` in `queue` with concurrency enabled (#946)
- `while` and `until` now pass the final result to callback (#963)
- `auto` will properly handle concurrency when there is no callback (#966)
- `auto` will now properly stop execution when an error occurs (#988, #993)
- Various doc fixes (#971, #980)
# v1.5.0
- Added `transform`, analogous to [`_.transform`](http://lodash.com/docs#transform) (#892)
- `map` now returns an object when an object is passed in, rather than array with non-numeric keys. `map` will begin always returning an array with numeric indexes in the next major release. (#873)
- `auto` now accepts an optional `concurrency` argument to limit the number of running tasks (#637)
- Added `queue#workersList()`, to retrieve the list of currently running tasks. (#891)
- Various code simplifications (#896, #904)
- Various doc fixes :scroll: (#890, #894, #903, #905, #912)
# v1.4.2
- Ensure coverage files don't get published on npm (#879)
# v1.4.1
- Add in overlooked `detectLimit` method (#866)
- Removed unnecessary files from npm releases (#861)
- Removed usage of a reserved word to prevent :boom: in older environments (#870)
# v1.4.0
- `asyncify` now supports promises (#840)
- Added `Limit` versions of `filter` and `reject` (#836)
- Add `Limit` versions of `detect`, `some` and `every` (#828, #829)
- `some`, `every` and `detect` now short circuit early (#828, #829)
- Improve detection of the global object (#804), enabling use in WebWorkers
- `whilst` now called with arguments from iterator (#823)
- `during` now gets called with arguments from iterator (#824)
- Code simplifications and optimizations aplenty ([diff](https://github.com/caolan/async/compare/v1.3.0...v1.4.0))
# v1.3.0
New Features:
- Added `constant`
- Added `asyncify`/`wrapSync` for making sync functions work with callbacks. (#671, #806)
- Added `during` and `doDuring`, which are like `whilst` with an async truth test. (#800)
- `retry` now accepts an `interval` parameter to specify a delay between retries. (#793)
- `async` should work better in Web Workers due to better `root` detection (#804)
- Callbacks are now optional in `whilst`, `doWhilst`, `until`, and `doUntil` (#642)
- Various internal updates (#786, #801, #802, #803)
- Various doc fixes (#790, #794)
Bug Fixes:
- `cargo` now exposes the `payload` size, and `cargo.payload` can be changed on the fly after the `cargo` is created. (#740, #744, #783)
# v1.2.1
Bug Fix:
- Small regression with synchronous iterator behavior in `eachSeries` with a 1-element array. Before 1.1.0, `eachSeries`'s callback was called on the same tick, which this patch restores. In 2.0.0, it will be called on the next tick. (#782)
# v1.2.0
New Features:
- Added `timesLimit` (#743)
- `concurrency` can be changed after initialization in `queue` by setting `q.concurrency`. The new concurrency will be reflected the next time a task is processed. (#747, #772)
Bug Fixes:
- Fixed a regression in `each` and family with empty arrays that have additional properties. (#775, #777)
# v1.1.1
Bug Fix:
- Small regression with synchronous iterator behavior in `eachSeries` with a 1-element array. Before 1.1.0, `eachSeries`'s callback was called on the same tick, which this patch restores. In 2.0.0, it will be called on the next tick. (#782)
# v1.1.0
New Features:
- `cargo` now supports all of the same methods and event callbacks as `queue`.
- Added `ensureAsync` - A wrapper that ensures an async function calls its callback on a later tick. (#769)
- Optimized `map`, `eachOf`, and `waterfall` families of functions
- Passing a `null` or `undefined` array to `map`, `each`, `parallel` and families will be treated as an empty array (#667).
- The callback is now optional for the composed results of `compose` and `seq`. (#618)
- Reduced file size by 4kb, (minified version by 1kb)
- Added code coverage through `nyc` and `coveralls` (#768)
Bug Fixes:
- `forever` will no longer stack overflow with a synchronous iterator (#622)
- `eachLimit` and other limit functions will stop iterating once an error occurs (#754)
- Always pass `null` in callbacks when there is no error (#439)
- Ensure proper conditions when calling `drain()` after pushing an empty data set to a queue (#668)
- `each` and family will properly handle an empty array (#578)
- `eachSeries` and family will finish if the underlying array is modified during execution (#557)
- `queue` will throw if a non-function is passed to `q.push()` (#593)
- Doc fixes (#629, #766)
# v1.0.0
No known breaking changes, we are simply complying with semver from here on out.
Changes:
- Start using a changelog!
- Add `forEachOf` for iterating over Objects (or to iterate Arrays with indexes available) (#168 #704 #321)
- Detect deadlocks in `auto` (#663)
- Better support for require.js (#527)
- Throw if queue created with concurrency `0` (#714)
- Fix unneeded iteration in `queue.resume()` (#758)
- Guard against timer mocking overriding `setImmediate` (#609 #611)
- Miscellaneous doc fixes (#542 #596 #615 #628 #631 #690 #729)
- Use single noop function internally (#546)
- Optimize internal `_each`, `_map` and `_keys` functions.

19
node_modules/async/LICENSE generated vendored Normal file
View File

@ -0,0 +1,19 @@
Copyright (c) 2010-2014 Caolan McMahon
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.

1877
node_modules/async/README.md generated vendored Normal file

File diff suppressed because it is too large Load Diff

1265
node_modules/async/dist/async.js generated vendored Normal file

File diff suppressed because it is too large Load Diff

2
node_modules/async/dist/async.min.js generated vendored Normal file

File diff suppressed because one or more lines are too long

1265
node_modules/async/lib/async.js generated vendored Normal file

File diff suppressed because it is too large Load Diff

157
node_modules/async/package.json generated vendored Normal file
View File

@ -0,0 +1,157 @@
{
"_args": [
[
{
"raw": "async@^1.4.0",
"scope": null,
"escapedName": "async",
"name": "async",
"rawSpec": "^1.4.0",
"spec": ">=1.4.0 <2.0.0",
"type": "range"
},
"/home/burchettm/statsbot/node_modules/form-data"
]
],
"_from": "async@>=1.4.0 <2.0.0",
"_id": "async@1.5.2",
"_inCache": true,
"_location": "/async",
"_nodeVersion": "4.2.3",
"_npmUser": {
"name": "aearly",
"email": "alexander.early@gmail.com"
},
"_npmVersion": "3.5.2",
"_phantomChildren": {},
"_requested": {
"raw": "async@^1.4.0",
"scope": null,
"escapedName": "async",
"name": "async",
"rawSpec": "^1.4.0",
"spec": ">=1.4.0 <2.0.0",
"type": "range"
},
"_requiredBy": [
"/form-data"
],
"_resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
"_shasum": "ec6a61ae56480c0c3cb241c95618e20892f9672a",
"_shrinkwrap": null,
"_spec": "async@^1.4.0",
"_where": "/home/burchettm/statsbot/node_modules/form-data",
"author": {
"name": "Caolan McMahon"
},
"bugs": {
"url": "https://github.com/caolan/async/issues"
},
"dependencies": {},
"description": "Higher-order functions and common patterns for asynchronous code",
"devDependencies": {
"benchmark": "github:bestiejs/benchmark.js",
"bluebird": "^2.9.32",
"chai": "^3.1.0",
"coveralls": "^2.11.2",
"es6-promise": "^2.3.0",
"jscs": "^1.13.1",
"jshint": "~2.8.0",
"karma": "^0.13.2",
"karma-browserify": "^4.2.1",
"karma-firefox-launcher": "^0.1.6",
"karma-mocha": "^0.2.0",
"karma-mocha-reporter": "^1.0.2",
"lodash": "^3.9.0",
"mkdirp": "~0.5.1",
"mocha": "^2.2.5",
"native-promise-only": "^0.8.0-a",
"nodeunit": ">0.0.0",
"nyc": "^2.1.0",
"rsvp": "^3.0.18",
"semver": "^4.3.6",
"uglify-js": "~2.4.0",
"xyz": "^0.5.0",
"yargs": "~3.9.1"
},
"directories": {},
"dist": {
"shasum": "ec6a61ae56480c0c3cb241c95618e20892f9672a",
"tarball": "https://registry.npmjs.org/async/-/async-1.5.2.tgz"
},
"files": [
"lib",
"dist/async.js",
"dist/async.min.js"
],
"gitHead": "9ab5c67b7cb3a4c3dad4a2d4552a2f6775545d6c",
"homepage": "https://github.com/caolan/async#readme",
"jam": {
"main": "lib/async.js",
"include": [
"lib/async.js",
"README.md",
"LICENSE"
],
"categories": [
"Utilities"
]
},
"keywords": [
"async",
"callback",
"utility",
"module"
],
"license": "MIT",
"main": "lib/async.js",
"maintainers": [
{
"name": "caolan",
"email": "caolan.mcmahon@gmail.com"
},
{
"name": "beaugunderson",
"email": "beau@beaugunderson.com"
},
{
"name": "aearly",
"email": "alexander.early@gmail.com"
},
{
"name": "megawac",
"email": "megawac@gmail.com"
}
],
"name": "async",
"optionalDependencies": {},
"readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git+https://github.com/caolan/async.git"
},
"scripts": {
"coverage": "nyc npm test && nyc report",
"coveralls": "nyc npm test && nyc report --reporter=text-lcov | coveralls",
"lint": "jshint lib/*.js test/*.js perf/*.js && jscs lib/*.js test/*.js perf/*.js",
"mocha-browser-test": "karma start",
"mocha-node-test": "mocha mocha_test/",
"mocha-test": "npm run mocha-node-test && npm run mocha-browser-test",
"nodeunit-test": "nodeunit test/test-async.js",
"test": "npm run-script lint && npm run nodeunit-test && npm run mocha-test"
},
"spm": {
"main": "lib/async.js"
},
"version": "1.5.2",
"volo": {
"main": "lib/async.js",
"ignore": [
"**/.*",
"node_modules",
"bower_components",
"test",
"tests"
]
}
}

122
node_modules/buffers/README.markdown generated vendored Normal file
View File

@ -0,0 +1,122 @@
buffers
=======
Treat a collection of Buffers as a single contiguous partially mutable Buffer.
Where possible, operations execute without creating a new Buffer and copying
everything over.
This is a cleaner more Buffery rehash of
[bufferlist](http://github.com/substack/node-bufferlist).
example
=======
slice
-----
var Buffers = require('buffers');
var bufs = Buffers();
bufs.push(new Buffer([1,2,3]));
bufs.push(new Buffer([4,5,6,7]));
bufs.push(new Buffer([8,9,10]));
console.dir(bufs.slice(2,8))
output:
$ node examples/slice.js
<Buffer 03 04 05 06 07 08>
splice
------
var Buffers = require('buffers');
var bufs = Buffers([
new Buffer([1,2,3]),
new Buffer([4,5,6,7]),
new Buffer([8,9,10]),
]);
var removed = bufs.splice(2, 4);
console.dir({
removed : removed.slice(),
bufs : bufs.slice(),
});
output:
$ node examples/splice.js
{ removed: <Buffer 03 04 05 06>,
bufs: <Buffer 01 02 07 08 09 0a> }
methods
=======
Buffers(buffers)
----------------
Create a Buffers with an array of `Buffer`s if specified, else `[]`.
.push(buf1, buf2...)
--------------------
Push buffers onto the end. Just like `Array.prototype.push`.
.unshift(buf1, buf2...)
-----------------------
Unshift buffers onto the head. Just like `Array.prototype.unshift`.
.slice(i, j)
------------
Slice a range out of the buffer collection as if it were contiguous.
Works just like the `Array.prototype.slice` version.
.splice(i, howMany, replacements)
---------------------------------
Splice the buffer collection as if it were contiguous.
Works just like `Array.prototype.splice`, even the replacement part!
.copy(dst, dstStart, start, end)
--------------------------------
Copy the buffer collection as if it were contiguous to the `dst` Buffer with the
specified bounds.
Works just like `Buffer.prototype.copy`.
.get(i)
-------
Get a single element at index `i`.
.set(i, x)
----------
Set a single element's value at index `i`.
.indexOf(needle, offset)
----------
Find a string or buffer `needle` inside the buffer collection. Returns
the position of the search string or -1 if the search string was not
found.
Provide an `offset` to skip that number of characters at the beginning
of the search. This can be used to find additional matches.
This function will return the correct result even if the search string
is spread out over multiple internal buffers.
.toBuffer()
-----------
Convert the buffer collection to a single buffer, equivalent with `.slice(0, buffers.length)`;
.toString(encoding, start, end)
-----------
Decodes and returns a string from the buffer collection.
Works just like `Buffer.prototype.toString`

9
node_modules/buffers/examples/slice.js generated vendored Normal file
View File

@ -0,0 +1,9 @@
var Buffers = require('buffers');
var bufs = Buffers();
bufs.push(new Buffer([1,2,3]));
bufs.push(new Buffer([4,5,6,7]));
bufs.push(new Buffer([8,9,10]));
console.dir(bufs.slice(2,8))
// Output: <Buffer 03 04 05 06 07 08>

17
node_modules/buffers/examples/splice.js generated vendored Normal file
View File

@ -0,0 +1,17 @@
var Buffers = require('buffers');
var bufs = Buffers([
new Buffer([1,2,3]),
new Buffer([4,5,6,7]),
new Buffer([8,9,10]),
]);
var removed = bufs.splice(2, 4, new Buffer('ab'), new Buffer('cd'));
console.dir({
removed : removed.slice(),
bufs : bufs.slice(),
});
/* Output:
{ removed: <Buffer 03 04 05 06>,
bufs: <Buffer 01 02 07 08 09 0a> }
*/

269
node_modules/buffers/index.js generated vendored Normal file
View File

@ -0,0 +1,269 @@
module.exports = Buffers;
function Buffers (bufs) {
if (!(this instanceof Buffers)) return new Buffers(bufs);
this.buffers = bufs || [];
this.length = this.buffers.reduce(function (size, buf) {
return size + buf.length
}, 0);
}
Buffers.prototype.push = function () {
for (var i = 0; i < arguments.length; i++) {
if (!Buffer.isBuffer(arguments[i])) {
throw new TypeError('Tried to push a non-buffer');
}
}
for (var i = 0; i < arguments.length; i++) {
var buf = arguments[i];
this.buffers.push(buf);
this.length += buf.length;
}
return this.length;
};
Buffers.prototype.unshift = function () {
for (var i = 0; i < arguments.length; i++) {
if (!Buffer.isBuffer(arguments[i])) {
throw new TypeError('Tried to unshift a non-buffer');
}
}
for (var i = 0; i < arguments.length; i++) {
var buf = arguments[i];
this.buffers.unshift(buf);
this.length += buf.length;
}
return this.length;
};
Buffers.prototype.copy = function (dst, dStart, start, end) {
return this.slice(start, end).copy(dst, dStart, 0, end - start);
};
Buffers.prototype.splice = function (i, howMany) {
var buffers = this.buffers;
var index = i >= 0 ? i : this.length - i;
var reps = [].slice.call(arguments, 2);
if (howMany === undefined) {
howMany = this.length - index;
}
else if (howMany > this.length - index) {
howMany = this.length - index;
}
for (var i = 0; i < reps.length; i++) {
this.length += reps[i].length;
}
var removed = new Buffers();
var bytes = 0;
var startBytes = 0;
for (
var ii = 0;
ii < buffers.length && startBytes + buffers[ii].length < index;
ii ++
) { startBytes += buffers[ii].length }
if (index - startBytes > 0) {
var start = index - startBytes;
if (start + howMany < buffers[ii].length) {
removed.push(buffers[ii].slice(start, start + howMany));
var orig = buffers[ii];
//var buf = new Buffer(orig.length - howMany);
var buf0 = new Buffer(start);
for (var i = 0; i < start; i++) {
buf0[i] = orig[i];
}
var buf1 = new Buffer(orig.length - start - howMany);
for (var i = start + howMany; i < orig.length; i++) {
buf1[ i - howMany - start ] = orig[i]
}
if (reps.length > 0) {
var reps_ = reps.slice();
reps_.unshift(buf0);
reps_.push(buf1);
buffers.splice.apply(buffers, [ ii, 1 ].concat(reps_));
ii += reps_.length;
reps = [];
}
else {
buffers.splice(ii, 1, buf0, buf1);
//buffers[ii] = buf;
ii += 2;
}
}
else {
removed.push(buffers[ii].slice(start));
buffers[ii] = buffers[ii].slice(0, start);
ii ++;
}
}
if (reps.length > 0) {
buffers.splice.apply(buffers, [ ii, 0 ].concat(reps));
ii += reps.length;
}
while (removed.length < howMany) {
var buf = buffers[ii];
var len = buf.length;
var take = Math.min(len, howMany - removed.length);
if (take === len) {
removed.push(buf);
buffers.splice(ii, 1);
}
else {
removed.push(buf.slice(0, take));
buffers[ii] = buffers[ii].slice(take);
}
}
this.length -= removed.length;
return removed;
};
Buffers.prototype.slice = function (i, j) {
var buffers = this.buffers;
if (j === undefined) j = this.length;
if (i === undefined) i = 0;
if (j > this.length) j = this.length;
var startBytes = 0;
for (
var si = 0;
si < buffers.length && startBytes + buffers[si].length <= i;
si ++
) { startBytes += buffers[si].length }
var target = new Buffer(j - i);
var ti = 0;
for (var ii = si; ti < j - i && ii < buffers.length; ii++) {
var len = buffers[ii].length;
var start = ti === 0 ? i - startBytes : 0;
var end = ti + len >= j - i
? Math.min(start + (j - i) - ti, len)
: len
;
buffers[ii].copy(target, ti, start, end);
ti += end - start;
}
return target;
};
Buffers.prototype.pos = function (i) {
if (i < 0 || i >= this.length) throw new Error('oob');
var l = i, bi = 0, bu = null;
for (;;) {
bu = this.buffers[bi];
if (l < bu.length) {
return {buf: bi, offset: l};
} else {
l -= bu.length;
}
bi++;
}
};
Buffers.prototype.get = function get (i) {
var pos = this.pos(i);
return this.buffers[pos.buf].get(pos.offset);
};
Buffers.prototype.set = function set (i, b) {
var pos = this.pos(i);
return this.buffers[pos.buf].set(pos.offset, b);
};
Buffers.prototype.indexOf = function (needle, offset) {
if ("string" === typeof needle) {
needle = new Buffer(needle);
} else if (needle instanceof Buffer) {
// already a buffer
} else {
throw new Error('Invalid type for a search string');
}
if (!needle.length) {
return 0;
}
if (!this.length) {
return -1;
}
var i = 0, j = 0, match = 0, mstart, pos = 0;
// start search from a particular point in the virtual buffer
if (offset) {
var p = this.pos(offset);
i = p.buf;
j = p.offset;
pos = offset;
}
// for each character in virtual buffer
for (;;) {
while (j >= this.buffers[i].length) {
j = 0;
i++;
if (i >= this.buffers.length) {
// search string not found
return -1;
}
}
var char = this.buffers[i][j];
if (char == needle[match]) {
// keep track where match started
if (match == 0) {
mstart = {
i: i,
j: j,
pos: pos
};
}
match++;
if (match == needle.length) {
// full match
return mstart.pos;
}
} else if (match != 0) {
// a partial match ended, go back to match starting position
// this will continue the search at the next character
i = mstart.i;
j = mstart.j;
pos = mstart.pos;
match = 0;
}
j++;
pos++;
}
};
Buffers.prototype.toBuffer = function() {
return this.slice();
}
Buffers.prototype.toString = function(encoding, start, end) {
return this.slice(start, end).toString(encoding);
}

86
node_modules/buffers/package.json generated vendored Normal file
View File

@ -0,0 +1,86 @@
{
"_args": [
[
{
"raw": "buffers@^0.1.1",
"scope": null,
"escapedName": "buffers",
"name": "buffers",
"rawSpec": "^0.1.1",
"spec": ">=0.1.1 <0.2.0",
"type": "range"
},
"/home/burchettm/statsbot/node_modules/ebml"
]
],
"_defaultsLoaded": true,
"_engineSupported": true,
"_from": "buffers@>=0.1.1 <0.2.0",
"_id": "buffers@0.1.1",
"_inCache": true,
"_location": "/buffers",
"_nodeVersion": "v0.4.12",
"_npmJsonOpts": {
"file": "/home/substack/.npm/buffers/0.1.1/package/package.json",
"wscript": false,
"contributors": false,
"serverjs": false
},
"_npmVersion": "1.0.30",
"_phantomChildren": {},
"_requested": {
"raw": "buffers@^0.1.1",
"scope": null,
"escapedName": "buffers",
"name": "buffers",
"rawSpec": "^0.1.1",
"spec": ">=0.1.1 <0.2.0",
"type": "range"
},
"_requiredBy": [
"/ebml"
],
"_resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz",
"_shasum": "b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb",
"_shrinkwrap": null,
"_spec": "buffers@^0.1.1",
"_where": "/home/burchettm/statsbot/node_modules/ebml",
"author": {
"name": "James Halliday",
"email": "mail@substack.net",
"url": "http://substack.net"
},
"bugs": {
"url": "https://github.com/substack/node-buffers/issues"
},
"dependencies": {},
"description": "Treat a collection of Buffers as a single contiguous partially mutable Buffer.",
"devDependencies": {},
"directories": {},
"dist": {
"shasum": "b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb",
"tarball": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz"
},
"engines": {
"node": ">=0.2.0"
},
"homepage": "https://github.com/substack/node-buffers#readme",
"main": "./index",
"maintainers": [
{
"name": "substack",
"email": "mail@substack.net"
}
],
"name": "buffers",
"optionalDependencies": {},
"readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git://github.com/substack/node-buffers.git"
},
"scripts": {
"test": "expresso"
},
"version": "0.1.1"
}

209
node_modules/buffers/test/buffers.js generated vendored Normal file
View File

@ -0,0 +1,209 @@
var assert = require('assert');
var Buffers = require('../');
function create (xs, split) {
var bufs = Buffers();
var offset = 0;
split.forEach(function (i) {
bufs.push(new Buffer(xs.slice(offset, offset + i)));
offset += i;
});
return bufs;
}
exports.slice = function () {
var xs = [0,1,2,3,4,5,6,7,8,9];
var splits = [ [4,2,3,1], [2,2,2,2,2], [1,6,3,1], [9,2], [10], [5,5] ];
splits.forEach(function (split) {
var bufs = create(xs, split);
assert.eql(new Buffer(xs), bufs.slice(),
'[' + xs.join(',') + ']'
+ ' != ' +
'[' + [].join.call(bufs.slice(), ',') + ']'
);
for (var i = 0; i < xs.length; i++) {
for (var j = i; j < xs.length; j++) {
var a = bufs.slice(i,j);
var b = new Buffer(xs.slice(i,j));
assert.eql(a, b,
'[' + [].join.call(a, ',') + ']'
+ ' != ' +
'[' + [].join.call(b, ',') + ']'
);
}
}
});
};
exports.splice = function () {
var xs = [0,1,2,3,4,5,6,7,8,9];
var splits = [ [4,2,3,1], [2,2,2,2,2], [1,6,3,1], [9,2], [10], [5,5] ];
splits.forEach(function (split) {
for (var i = 0; i < xs.length; i++) {
for (var j = i; j < xs.length; j++) {
var bufs = create(xs, split);
var xs_ = xs.slice();
var a_ = bufs.splice(i,j);
var a = [].slice.call(a_.slice());
var b = xs_.splice(i,j);
assert.eql(a, b,
'[' + a.join(',') + ']'
+ ' != ' +
'[' + b.join(',') + ']'
);
assert.eql(bufs.slice(), new Buffer(xs_),
'[' + [].join.call(bufs.slice(), ',') + ']'
+ ' != ' +
'[' + [].join.call(xs_, ',') + ']'
);
}
}
});
};
exports.spliceRep = function () {
var xs = [0,1,2,3,4,5,6,7,8,9];
var splits = [ [4,2,3,1], [2,2,2,2,2], [1,6,3,1], [9,2], [10], [5,5] ];
var reps = [ [], [1], [5,6], [3,1,3,3,7], [9,8,7,6,5,4,3,2,1,2,3,4,5] ];
splits.forEach(function (split) {
reps.forEach(function (rep) {
for (var i = 0; i < xs.length; i++) {
for (var j = i; j < xs.length; j++) {
var bufs = create(xs, split);
var xs_ = xs.slice();
var a_ = bufs.splice.apply(
bufs, [ i, j ].concat(new Buffer(rep))
);
var a = [].slice.call(a_.slice());
var b = xs_.splice.apply(xs_, [ i, j ].concat(rep));
assert.eql(a, b,
'[' + a.join(',') + ']'
+ ' != ' +
'[' + b.join(',') + ']'
);
assert.eql(bufs.slice(), new Buffer(xs_),
'[' + [].join.call(bufs.slice(), ',') + ']'
+ ' != ' +
'[' + [].join.call(xs_, ',') + ']'
);
}
}
});
});
};
exports.copy = function () {
var xs = [0,1,2,3,4,5,6,7,8,9];
var splits = [ [4,2,3,1], [2,2,2,2,2], [1,6,3,1], [9,2], [10], [5,5] ];
splits.forEach(function (split) {
var bufs = create(xs, split);
var buf = new Buffer(xs);
for (var i = 0; i < xs.length; i++) {
for (var j = i; j < xs.length; j++) {
var t0 = new Buffer(j - i);
var t1 = new Buffer(j - i);
assert.eql(
bufs.copy(t0, 0, i, j),
buf.copy(t1, 0, i, j)
);
assert.eql(
[].slice.call(t0),
[].slice.call(t1)
);
}
}
});
};
exports.push = function () {
var bufs = Buffers();
bufs.push(new Buffer([0]));
bufs.push(new Buffer([1,2,3]));
bufs.push(new Buffer([4,5]));
bufs.push(new Buffer([6,7,8,9]));
assert.eql(
[].slice.call(bufs.slice()),
[0,1,2,3,4,5,6,7,8,9]
);
assert.throws(function () {
bufs.push(new Buffer([11,12]), 'moo');
});
assert.eql(bufs.buffers.length, 4);
};
exports.unshift = function () {
var bufs = Buffers();
bufs.unshift(new Buffer([6,7,8,9]));
bufs.unshift(new Buffer([4,5]));
bufs.unshift(new Buffer([1,2,3]));
bufs.unshift(new Buffer([0]));
assert.eql(
[].slice.call(bufs.slice()),
[0,1,2,3,4,5,6,7,8,9]
);
assert.throws(function () {
bufs.unshift(new Buffer([-2,-1]), 'moo');
});
assert.eql(bufs.buffers.length, 4);
};
exports.get = function () {
var bufs = Buffers();
bufs.unshift(new Buffer([6,7,8,9]));
bufs.unshift(new Buffer([4,5]));
bufs.unshift(new Buffer([1,2,3]));
bufs.unshift(new Buffer([0]));
assert.eql( bufs.get(0), 0 );
assert.eql( bufs.get(1), 1 );
assert.eql( bufs.get(2), 2 );
assert.eql( bufs.get(3), 3 );
assert.eql( bufs.get(4), 4 );
assert.eql( bufs.get(5), 5 );
assert.eql( bufs.get(6), 6 );
assert.eql( bufs.get(7), 7 );
assert.eql( bufs.get(8), 8 );
assert.eql( bufs.get(9), 9 );
};
exports.set = function () {
var bufs = Buffers();
bufs.push(new Buffer("Hel"));
bufs.push(new Buffer("lo"));
bufs.push(new Buffer("!"));
bufs.set(0, 'h'.charCodeAt(0) );
bufs.set(3, 'L'.charCodeAt(0) );
bufs.set(5, '.'.charCodeAt(0) );
assert.eql( bufs.slice(0).toString(), 'helLo.' );
};
exports.indexOf = function () {
var bufs = Buffers();
bufs.push(new Buffer("Hel"));
bufs.push(new Buffer("lo,"));
bufs.push(new Buffer(" how are "));
bufs.push(new Buffer("you"));
bufs.push(new Buffer("?"));
assert.eql( bufs.indexOf("Hello"), 0 );
assert.eql( bufs.indexOf("Hello", 1), -1 );
assert.eql( bufs.indexOf("ello"), 1 );
assert.eql( bufs.indexOf("ello", 1), 1 );
assert.eql( bufs.indexOf("ello", 2), -1 );
assert.eql( bufs.indexOf("e"), 1 );
assert.eql( bufs.indexOf("e", 2), 13 );
assert.eql( bufs.indexOf(new Buffer([0x65]), 2), 13 );
};

35
node_modules/builtin-modules/builtin-modules.json generated vendored Normal file
View File

@ -0,0 +1,35 @@
[
"assert",
"buffer",
"child_process",
"cluster",
"console",
"constants",
"crypto",
"dgram",
"dns",
"domain",
"events",
"fs",
"http",
"https",
"module",
"net",
"os",
"path",
"process",
"punycode",
"querystring",
"readline",
"repl",
"stream",
"string_decoder",
"timers",
"tls",
"tty",
"url",
"util",
"v8",
"vm",
"zlib"
]

10
node_modules/builtin-modules/index.js generated vendored Normal file
View File

@ -0,0 +1,10 @@
'use strict';
var blacklist = [
'freelist',
'sys'
];
module.exports = Object.keys(process.binding('natives')).filter(function (el) {
return !/^_|^internal|\//.test(el) && blacklist.indexOf(el) === -1;
}).sort();

21
node_modules/builtin-modules/license generated vendored Normal file
View File

@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
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.

104
node_modules/builtin-modules/package.json generated vendored Normal file
View File

@ -0,0 +1,104 @@
{
"_args": [
[
{
"raw": "builtin-modules@^1.0.0",
"scope": null,
"escapedName": "builtin-modules",
"name": "builtin-modules",
"rawSpec": "^1.0.0",
"spec": ">=1.0.0 <2.0.0",
"type": "range"
},
"/home/burchettm/statsbot/node_modules/is-builtin-module"
]
],
"_from": "builtin-modules@>=1.0.0 <2.0.0",
"_id": "builtin-modules@1.1.1",
"_inCache": true,
"_location": "/builtin-modules",
"_nodeVersion": "5.3.0",
"_npmUser": {
"name": "sindresorhus",
"email": "sindresorhus@gmail.com"
},
"_npmVersion": "3.3.12",
"_phantomChildren": {},
"_requested": {
"raw": "builtin-modules@^1.0.0",
"scope": null,
"escapedName": "builtin-modules",
"name": "builtin-modules",
"rawSpec": "^1.0.0",
"spec": ">=1.0.0 <2.0.0",
"type": "range"
},
"_requiredBy": [
"/is-builtin-module"
],
"_resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
"_shasum": "270f076c5a72c02f5b65a47df94c5fe3a278892f",
"_shrinkwrap": null,
"_spec": "builtin-modules@^1.0.0",
"_where": "/home/burchettm/statsbot/node_modules/is-builtin-module",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
"url": "sindresorhus.com"
},
"bugs": {
"url": "https://github.com/sindresorhus/builtin-modules/issues"
},
"dependencies": {},
"description": "List of the Node.js builtin modules",
"devDependencies": {
"ava": "*",
"xo": "*"
},
"directories": {},
"dist": {
"shasum": "270f076c5a72c02f5b65a47df94c5fe3a278892f",
"tarball": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz"
},
"engines": {
"node": ">=0.10.0"
},
"files": [
"index.js",
"static.js",
"builtin-modules.json"
],
"gitHead": "0ea253452b1d8cb3a70d16464f909dbc0bc370fe",
"homepage": "https://github.com/sindresorhus/builtin-modules#readme",
"keywords": [
"builtin",
"built-in",
"builtins",
"node",
"modules",
"core",
"bundled",
"list",
"array",
"names"
],
"license": "MIT",
"maintainers": [
{
"name": "sindresorhus",
"email": "sindresorhus@gmail.com"
}
],
"name": "builtin-modules",
"optionalDependencies": {},
"readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git+https://github.com/sindresorhus/builtin-modules.git"
},
"scripts": {
"make": "node make.js",
"test": "xo && ava"
},
"version": "1.1.1"
}

41
node_modules/builtin-modules/readme.md generated vendored Normal file
View File

@ -0,0 +1,41 @@
# builtin-modules [![Build Status](https://travis-ci.org/sindresorhus/builtin-modules.svg?branch=master)](https://travis-ci.org/sindresorhus/builtin-modules)
> List of the Node.js builtin modules
The list is just a [JSON file](builtin-modules.json) and can be used wherever.
## Install
```
$ npm install --save builtin-modules
```
## Usage
```js
var builtinModules = require('builtin-modules');
console.log(builinModules);
//=> ['assert', 'buffer', ...]
```
## API
Returns an array of builtin modules fetched from the running Node.js version.
### Static list
This module also comes bundled with a static array of builtin modules generated from the latest Node.js version. You can get it with `require('builtin-modules/static');`
## Related
- [is-builtin-module](https://github.com/sindresorhus/is-builtin-module) - Check if a string matches the name of a Node.js builtin module
## License
MIT © [Sindre Sorhus](http://sindresorhus.com)

2
node_modules/builtin-modules/static.js generated vendored Normal file
View File

@ -0,0 +1,2 @@
'use strict';
module.exports = require('./builtin-modules.json');

12
node_modules/camelcase-keys/index.js generated vendored Normal file
View File

@ -0,0 +1,12 @@
'use strict';
var mapObj = require('map-obj');
var camelCase = require('camelcase');
module.exports = function (input, options) {
options = options || {};
var exclude = options.exclude || [];
return mapObj(input, function (key, val) {
key = exclude.indexOf(key) === -1 ? camelCase(key) : key;
return [key, val];
});
};

21
node_modules/camelcase-keys/license generated vendored Normal file
View File

@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
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.

119
node_modules/camelcase-keys/package.json generated vendored Normal file
View File

@ -0,0 +1,119 @@
{
"_args": [
[
{
"raw": "camelcase-keys@^2.0.0",
"scope": null,
"escapedName": "camelcase-keys",
"name": "camelcase-keys",
"rawSpec": "^2.0.0",
"spec": ">=2.0.0 <3.0.0",
"type": "range"
},
"/home/burchettm/statsbot/node_modules/meow"
]
],
"_from": "camelcase-keys@>=2.0.0 <3.0.0",
"_id": "camelcase-keys@2.1.0",
"_inCache": true,
"_location": "/camelcase-keys",
"_nodeVersion": "4.3.0",
"_npmOperationalInternal": {
"host": "packages-13-west.internal.npmjs.com",
"tmp": "tmp/camelcase-keys-2.1.0.tgz_1458051723517_0.14490422373637557"
},
"_npmUser": {
"name": "sindresorhus",
"email": "sindresorhus@gmail.com"
},
"_npmVersion": "2.14.12",
"_phantomChildren": {},
"_requested": {
"raw": "camelcase-keys@^2.0.0",
"scope": null,
"escapedName": "camelcase-keys",
"name": "camelcase-keys",
"rawSpec": "^2.0.0",
"spec": ">=2.0.0 <3.0.0",
"type": "range"
},
"_requiredBy": [
"/meow"
],
"_resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
"_shasum": "308beeaffdf28119051efa1d932213c91b8f92e7",
"_shrinkwrap": null,
"_spec": "camelcase-keys@^2.0.0",
"_where": "/home/burchettm/statsbot/node_modules/meow",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
"url": "http://sindresorhus.com"
},
"bugs": {
"url": "https://github.com/sindresorhus/camelcase-keys/issues"
},
"dependencies": {
"camelcase": "^2.0.0",
"map-obj": "^1.0.0"
},
"description": "Convert object keys to camelCase",
"devDependencies": {
"ava": "*",
"xo": "*"
},
"directories": {},
"dist": {
"shasum": "308beeaffdf28119051efa1d932213c91b8f92e7",
"tarball": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz"
},
"engines": {
"node": ">=0.10.0"
},
"files": [
"index.js"
],
"gitHead": "d92dfb3b5eb2985d62839cdd44672f01139d1822",
"homepage": "https://github.com/sindresorhus/camelcase-keys",
"keywords": [
"map",
"obj",
"object",
"key",
"keys",
"value",
"values",
"val",
"iterate",
"camelcase",
"camel-case",
"camel",
"case",
"dash",
"hyphen",
"dot",
"underscore",
"separator",
"string",
"text",
"convert"
],
"license": "MIT",
"maintainers": [
{
"name": "sindresorhus",
"email": "sindresorhus@gmail.com"
}
],
"name": "camelcase-keys",
"optionalDependencies": {},
"readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git+https://github.com/sindresorhus/camelcase-keys.git"
},
"scripts": {
"test": "xo && ava"
},
"version": "2.1.0"
}

54
node_modules/camelcase-keys/readme.md generated vendored Normal file
View File

@ -0,0 +1,54 @@
# camelcase-keys [![Build Status](https://travis-ci.org/sindresorhus/camelcase-keys.svg?branch=master)](https://travis-ci.org/sindresorhus/camelcase-keys)
> Convert object keys to camelCase using [`camelcase`](https://github.com/sindresorhus/camelcase)
## Install
```
$ npm install --save camelcase-keys
```
## Usage
```js
const camelcaseKeys = require('camelcase-keys');
camelcaseKeys({'foo-bar': true});
//=> {fooBar: true}
const argv = require('minimist')(process.argv.slice(2));
//=> {_: [], 'foo-bar': true}
camelcaseKeys(argv);
//=> {_: [], fooBar: true}
```
## API
### camelcaseKeys(input, [options])
#### input
Type: `object`
Object to camelCase.
#### options
Type: `object`
##### exclude
Type: `array`
Default: `[]`
Exclude keys from being camelCased.
## License
MIT © [Sindre Sorhus](http://sindresorhus.com)

56
node_modules/camelcase/index.js generated vendored Normal file
View File

@ -0,0 +1,56 @@
'use strict';
function preserveCamelCase(str) {
var isLastCharLower = false;
for (var i = 0; i < str.length; i++) {
var c = str.charAt(i);
if (isLastCharLower && (/[a-zA-Z]/).test(c) && c.toUpperCase() === c) {
str = str.substr(0, i) + '-' + str.substr(i);
isLastCharLower = false;
i++;
} else {
isLastCharLower = (c.toLowerCase() === c);
}
}
return str;
}
module.exports = function () {
var str = [].map.call(arguments, function (str) {
return str.trim();
}).filter(function (str) {
return str.length;
}).join('-');
if (!str.length) {
return '';
}
if (str.length === 1) {
return str;
}
if (!(/[_.\- ]+/).test(str)) {
if (str === str.toUpperCase()) {
return str.toLowerCase();
}
if (str[0] !== str[0].toLowerCase()) {
return str[0].toLowerCase() + str.slice(1);
}
return str;
}
str = preserveCamelCase(str);
return str
.replace(/^[_.\- ]+/, '')
.toLowerCase()
.replace(/[_.\- ]+(\w|$)/g, function (m, p1) {
return p1.toUpperCase();
});
};

21
node_modules/camelcase/license generated vendored Normal file
View File

@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
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.

107
node_modules/camelcase/package.json generated vendored Normal file
View File

@ -0,0 +1,107 @@
{
"_args": [
[
{
"raw": "camelcase@^2.0.0",
"scope": null,
"escapedName": "camelcase",
"name": "camelcase",
"rawSpec": "^2.0.0",
"spec": ">=2.0.0 <3.0.0",
"type": "range"
},
"/home/burchettm/statsbot/node_modules/camelcase-keys"
]
],
"_from": "camelcase@>=2.0.0 <3.0.0",
"_id": "camelcase@2.1.1",
"_inCache": true,
"_location": "/camelcase",
"_nodeVersion": "4.3.0",
"_npmOperationalInternal": {
"host": "packages-12-west.internal.npmjs.com",
"tmp": "tmp/camelcase-2.1.1.tgz_1457803836074_0.4515206723008305"
},
"_npmUser": {
"name": "sindresorhus",
"email": "sindresorhus@gmail.com"
},
"_npmVersion": "2.14.12",
"_phantomChildren": {},
"_requested": {
"raw": "camelcase@^2.0.0",
"scope": null,
"escapedName": "camelcase",
"name": "camelcase",
"rawSpec": "^2.0.0",
"spec": ">=2.0.0 <3.0.0",
"type": "range"
},
"_requiredBy": [
"/camelcase-keys"
],
"_resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
"_shasum": "7c1d16d679a1bbe59ca02cacecfb011e201f5a1f",
"_shrinkwrap": null,
"_spec": "camelcase@^2.0.0",
"_where": "/home/burchettm/statsbot/node_modules/camelcase-keys",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
"url": "http://sindresorhus.com"
},
"bugs": {
"url": "https://github.com/sindresorhus/camelcase/issues"
},
"dependencies": {},
"description": "Convert a dash/dot/underscore/space separated string to camelCase: foo-bar → fooBar",
"devDependencies": {
"ava": "*",
"xo": "*"
},
"directories": {},
"dist": {
"shasum": "7c1d16d679a1bbe59ca02cacecfb011e201f5a1f",
"tarball": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz"
},
"engines": {
"node": ">=0.10.0"
},
"files": [
"index.js"
],
"gitHead": "35c9c8abce5b9cc9defe534ab25823dc6383180f",
"homepage": "https://github.com/sindresorhus/camelcase",
"keywords": [
"camelcase",
"camel-case",
"camel",
"case",
"dash",
"hyphen",
"dot",
"underscore",
"separator",
"string",
"text",
"convert"
],
"license": "MIT",
"maintainers": [
{
"name": "sindresorhus",
"email": "sindresorhus@gmail.com"
}
],
"name": "camelcase",
"optionalDependencies": {},
"readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git+https://github.com/sindresorhus/camelcase.git"
},
"scripts": {
"test": "xo && ava"
},
"version": "2.1.1"
}

57
node_modules/camelcase/readme.md generated vendored Normal file
View File

@ -0,0 +1,57 @@
# camelcase [![Build Status](https://travis-ci.org/sindresorhus/camelcase.svg?branch=master)](https://travis-ci.org/sindresorhus/camelcase)
> Convert a dash/dot/underscore/space separated string to camelCase: `foo-bar``fooBar`
## Install
```
$ npm install --save camelcase
```
## Usage
```js
const camelCase = require('camelcase');
camelCase('foo-bar');
//=> 'fooBar'
camelCase('foo_bar');
//=> 'fooBar'
camelCase('Foo-Bar');
//=> 'fooBar'
camelCase('--foo.bar');
//=> 'fooBar'
camelCase('__foo__bar__');
//=> 'fooBar'
camelCase('foo bar');
//=> 'fooBar'
console.log(process.argv[3]);
//=> '--foo-bar'
camelCase(process.argv[3]);
//=> 'fooBar'
camelCase('foo', 'bar');
//=> 'fooBar'
camelCase('__foo__', '--bar');
//=> 'fooBar'
```
## Related
- [decamelize](https://github.com/sindresorhus/decamelize) - The inverse of this module
- [uppercamelcase](https://github.com/SamVerschueren/uppercamelcase) - Like this module, but to PascalCase instead of camelCase
## License
MIT © [Sindre Sorhus](http://sindresorhus.com)

116
node_modules/chalk/index.js generated vendored Normal file
View File

@ -0,0 +1,116 @@
'use strict';
var escapeStringRegexp = require('escape-string-regexp');
var ansiStyles = require('ansi-styles');
var stripAnsi = require('strip-ansi');
var hasAnsi = require('has-ansi');
var supportsColor = require('supports-color');
var defineProps = Object.defineProperties;
var isSimpleWindowsTerm = process.platform === 'win32' && !/^xterm/i.test(process.env.TERM);
function Chalk(options) {
// detect mode if not set manually
this.enabled = !options || options.enabled === undefined ? supportsColor : options.enabled;
}
// use bright blue on Windows as the normal blue color is illegible
if (isSimpleWindowsTerm) {
ansiStyles.blue.open = '\u001b[94m';
}
var styles = (function () {
var ret = {};
Object.keys(ansiStyles).forEach(function (key) {
ansiStyles[key].closeRe = new RegExp(escapeStringRegexp(ansiStyles[key].close), 'g');
ret[key] = {
get: function () {
return build.call(this, this._styles.concat(key));
}
};
});
return ret;
})();
var proto = defineProps(function chalk() {}, styles);
function build(_styles) {
var builder = function () {
return applyStyle.apply(builder, arguments);
};
builder._styles = _styles;
builder.enabled = this.enabled;
// __proto__ is used because we must return a function, but there is
// no way to create a function with a different prototype.
/* eslint-disable no-proto */
builder.__proto__ = proto;
return builder;
}
function applyStyle() {
// support varags, but simply cast to string in case there's only one arg
var args = arguments;
var argsLen = args.length;
var str = argsLen !== 0 && String(arguments[0]);
if (argsLen > 1) {
// don't slice `arguments`, it prevents v8 optimizations
for (var a = 1; a < argsLen; a++) {
str += ' ' + args[a];
}
}
if (!this.enabled || !str) {
return str;
}
var nestedStyles = this._styles;
var i = nestedStyles.length;
// Turns out that on Windows dimmed gray text becomes invisible in cmd.exe,
// see https://github.com/chalk/chalk/issues/58
// If we're on Windows and we're dealing with a gray color, temporarily make 'dim' a noop.
var originalDim = ansiStyles.dim.open;
if (isSimpleWindowsTerm && (nestedStyles.indexOf('gray') !== -1 || nestedStyles.indexOf('grey') !== -1)) {
ansiStyles.dim.open = '';
}
while (i--) {
var code = ansiStyles[nestedStyles[i]];
// Replace any instances already present with a re-opening code
// otherwise only the part of the string until said closing code
// will be colored, and the rest will simply be 'plain'.
str = code.open + str.replace(code.closeRe, code.open) + code.close;
}
// Reset the original 'dim' if we changed it to work around the Windows dimmed gray issue.
ansiStyles.dim.open = originalDim;
return str;
}
function init() {
var ret = {};
Object.keys(styles).forEach(function (name) {
ret[name] = {
get: function () {
return build.call(this, [name]);
}
};
});
return ret;
}
defineProps(Chalk.prototype, init());
module.exports = new Chalk();
module.exports.styles = ansiStyles;
module.exports.hasColor = hasAnsi;
module.exports.stripColor = stripAnsi;
module.exports.supportsColor = supportsColor;

21
node_modules/chalk/license generated vendored Normal file
View File

@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
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.

140
node_modules/chalk/package.json generated vendored Normal file
View File

@ -0,0 +1,140 @@
{
"_args": [
[
{
"raw": "chalk@^1.1.1",
"scope": null,
"escapedName": "chalk",
"name": "chalk",
"rawSpec": "^1.1.1",
"spec": ">=1.1.1 <2.0.0",
"type": "range"
},
"/home/burchettm/statsbot/node_modules/console-stamp"
]
],
"_from": "chalk@>=1.1.1 <2.0.0",
"_id": "chalk@1.1.3",
"_inCache": true,
"_location": "/chalk",
"_nodeVersion": "0.10.32",
"_npmOperationalInternal": {
"host": "packages-12-west.internal.npmjs.com",
"tmp": "tmp/chalk-1.1.3.tgz_1459210604109_0.3892582862172276"
},
"_npmUser": {
"name": "qix",
"email": "i.am.qix@gmail.com"
},
"_npmVersion": "2.14.2",
"_phantomChildren": {},
"_requested": {
"raw": "chalk@^1.1.1",
"scope": null,
"escapedName": "chalk",
"name": "chalk",
"rawSpec": "^1.1.1",
"spec": ">=1.1.1 <2.0.0",
"type": "range"
},
"_requiredBy": [
"/console-stamp"
],
"_resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
"_shasum": "a8115c55e4a702fe4d150abd3872822a7e09fc98",
"_shrinkwrap": null,
"_spec": "chalk@^1.1.1",
"_where": "/home/burchettm/statsbot/node_modules/console-stamp",
"bugs": {
"url": "https://github.com/chalk/chalk/issues"
},
"dependencies": {
"ansi-styles": "^2.2.1",
"escape-string-regexp": "^1.0.2",
"has-ansi": "^2.0.0",
"strip-ansi": "^3.0.0",
"supports-color": "^2.0.0"
},
"description": "Terminal string styling done right. Much color.",
"devDependencies": {
"coveralls": "^2.11.2",
"matcha": "^0.6.0",
"mocha": "*",
"nyc": "^3.0.0",
"require-uncached": "^1.0.2",
"resolve-from": "^1.0.0",
"semver": "^4.3.3",
"xo": "*"
},
"directories": {},
"dist": {
"shasum": "a8115c55e4a702fe4d150abd3872822a7e09fc98",
"tarball": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz"
},
"engines": {
"node": ">=0.10.0"
},
"files": [
"index.js"
],
"gitHead": "0d8d8c204eb87a4038219131ad4d8369c9f59d24",
"homepage": "https://github.com/chalk/chalk#readme",
"keywords": [
"color",
"colour",
"colors",
"terminal",
"console",
"cli",
"string",
"str",
"ansi",
"style",
"styles",
"tty",
"formatting",
"rgb",
"256",
"shell",
"xterm",
"log",
"logging",
"command-line",
"text"
],
"license": "MIT",
"maintainers": [
{
"name": "qix",
"email": "i.am.qix@gmail.com"
},
{
"name": "sindresorhus",
"email": "sindresorhus@gmail.com"
},
{
"name": "unicorn",
"email": "sindresorhus+unicorn@gmail.com"
}
],
"name": "chalk",
"optionalDependencies": {},
"readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git+https://github.com/chalk/chalk.git"
},
"scripts": {
"bench": "matcha benchmark.js",
"coverage": "nyc npm test && nyc report",
"coveralls": "nyc npm test && nyc report --reporter=text-lcov | coveralls",
"test": "xo && mocha"
},
"version": "1.1.3",
"xo": {
"envs": [
"node",
"mocha"
]
}
}

213
node_modules/chalk/readme.md generated vendored Normal file
View File

@ -0,0 +1,213 @@
<h1 align="center">
<br>
<br>
<img width="360" src="https://cdn.rawgit.com/chalk/chalk/19935d6484811c5e468817f846b7b3d417d7bf4a/logo.svg" alt="chalk">
<br>
<br>
<br>
</h1>
> Terminal string styling done right
[![Build Status](https://travis-ci.org/chalk/chalk.svg?branch=master)](https://travis-ci.org/chalk/chalk)
[![Coverage Status](https://coveralls.io/repos/chalk/chalk/badge.svg?branch=master)](https://coveralls.io/r/chalk/chalk?branch=master)
[![](http://img.shields.io/badge/unicorn-approved-ff69b4.svg)](https://www.youtube.com/watch?v=9auOCbH5Ns4)
[colors.js](https://github.com/Marak/colors.js) used to be the most popular string styling module, but it has serious deficiencies like extending `String.prototype` which causes all kinds of [problems](https://github.com/yeoman/yo/issues/68). Although there are other ones, they either do too much or not enough.
**Chalk is a clean and focused alternative.**
![](https://github.com/chalk/ansi-styles/raw/master/screenshot.png)
## Why
- Highly performant
- Doesn't extend `String.prototype`
- Expressive API
- Ability to nest styles
- Clean and focused
- Auto-detects color support
- Actively maintained
- [Used by ~4500 modules](https://www.npmjs.com/browse/depended/chalk) as of July 15, 2015
## Install
```
$ npm install --save chalk
```
## Usage
Chalk comes with an easy to use composable API where you just chain and nest the styles you want.
```js
var chalk = require('chalk');
// style a string
chalk.blue('Hello world!');
// combine styled and normal strings
chalk.blue('Hello') + 'World' + chalk.red('!');
// compose multiple styles using the chainable API
chalk.blue.bgRed.bold('Hello world!');
// pass in multiple arguments
chalk.blue('Hello', 'World!', 'Foo', 'bar', 'biz', 'baz');
// nest styles
chalk.red('Hello', chalk.underline.bgBlue('world') + '!');
// nest styles of the same type even (color, underline, background)
chalk.green(
'I am a green line ' +
chalk.blue.underline.bold('with a blue substring') +
' that becomes green again!'
);
```
Easily define your own themes.
```js
var chalk = require('chalk');
var error = chalk.bold.red;
console.log(error('Error!'));
```
Take advantage of console.log [string substitution](http://nodejs.org/docs/latest/api/console.html#console_console_log_data).
```js
var name = 'Sindre';
console.log(chalk.green('Hello %s'), name);
//=> Hello Sindre
```
## API
### chalk.`<style>[.<style>...](string, [string...])`
Example: `chalk.red.bold.underline('Hello', 'world');`
Chain [styles](#styles) and call the last one as a method with a string argument. Order doesn't matter, and later styles take precedent in case of a conflict. This simply means that `Chalk.red.yellow.green` is equivalent to `Chalk.green`.
Multiple arguments will be separated by space.
### chalk.enabled
Color support is automatically detected, but you can override it by setting the `enabled` property. You should however only do this in your own code as it applies globally to all chalk consumers.
If you need to change this in a reusable module create a new instance:
```js
var ctx = new chalk.constructor({enabled: false});
```
### chalk.supportsColor
Detect whether the terminal [supports color](https://github.com/chalk/supports-color). Used internally and handled for you, but exposed for convenience.
Can be overridden by the user with the flags `--color` and `--no-color`. For situations where using `--color` is not possible, add an environment variable `FORCE_COLOR` with any value to force color. Trumps `--no-color`.
### chalk.styles
Exposes the styles as [ANSI escape codes](https://github.com/chalk/ansi-styles).
Generally not useful, but you might need just the `.open` or `.close` escape code if you're mixing externally styled strings with your own.
```js
var chalk = require('chalk');
console.log(chalk.styles.red);
//=> {open: '\u001b[31m', close: '\u001b[39m'}
console.log(chalk.styles.red.open + 'Hello' + chalk.styles.red.close);
```
### chalk.hasColor(string)
Check whether a string [has color](https://github.com/chalk/has-ansi).
### chalk.stripColor(string)
[Strip color](https://github.com/chalk/strip-ansi) from a string.
Can be useful in combination with `.supportsColor` to strip color on externally styled text when it's not supported.
Example:
```js
var chalk = require('chalk');
var styledString = getText();
if (!chalk.supportsColor) {
styledString = chalk.stripColor(styledString);
}
```
## Styles
### Modifiers
- `reset`
- `bold`
- `dim`
- `italic` *(not widely supported)*
- `underline`
- `inverse`
- `hidden`
- `strikethrough` *(not widely supported)*
### Colors
- `black`
- `red`
- `green`
- `yellow`
- `blue` *(on Windows the bright version is used as normal blue is illegible)*
- `magenta`
- `cyan`
- `white`
- `gray`
### Background colors
- `bgBlack`
- `bgRed`
- `bgGreen`
- `bgYellow`
- `bgBlue`
- `bgMagenta`
- `bgCyan`
- `bgWhite`
## 256-colors
Chalk does not support anything other than the base eight colors, which guarantees it will work on all terminals and systems. Some terminals, specifically `xterm` compliant ones, will support the full range of 8-bit colors. For this the lower level [ansi-256-colors](https://github.com/jbnicolai/ansi-256-colors) package can be used.
## Windows
If you're on Windows, do yourself a favor and use [`cmder`](http://bliker.github.io/cmder/) instead of `cmd.exe`.
## Related
- [chalk-cli](https://github.com/chalk/chalk-cli) - CLI for this module
- [ansi-styles](https://github.com/chalk/ansi-styles/) - ANSI escape codes for styling strings in the terminal
- [supports-color](https://github.com/chalk/supports-color/) - Detect whether a terminal supports color
- [strip-ansi](https://github.com/chalk/strip-ansi) - Strip ANSI escape codes
- [has-ansi](https://github.com/chalk/has-ansi) - Check if a string has ANSI escape codes
- [ansi-regex](https://github.com/chalk/ansi-regex) - Regular expression for matching ANSI escape codes
- [wrap-ansi](https://github.com/chalk/wrap-ansi) - Wordwrap a string with ANSI escape codes
## License
MIT © [Sindre Sorhus](http://sindresorhus.com)

19
node_modules/combined-stream/License generated vendored Normal file
View File

@ -0,0 +1,19 @@
Copyright (c) 2011 Debuggable Limited <felix@debuggable.com>
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.

138
node_modules/combined-stream/Readme.md generated vendored Normal file
View File

@ -0,0 +1,138 @@
# combined-stream
A stream that emits multiple other streams one after another.
**NB** Currently `combined-stream` works with streams vesrion 1 only. There is ongoing effort to switch this library to streams version 2. Any help is welcome. :) Meanwhile you can explore other libraries that provide streams2 support with more or less compatability with `combined-stream`.
- [combined-stream2](https://www.npmjs.com/package/combined-stream2): A drop-in streams2-compatible replacement for the combined-stream module.
- [multistream](https://www.npmjs.com/package/multistream): A stream that emits multiple other streams one after another.
## Installation
``` bash
npm install combined-stream
```
## Usage
Here is a simple example that shows how you can use combined-stream to combine
two files into one:
``` javascript
var CombinedStream = require('combined-stream');
var fs = require('fs');
var combinedStream = CombinedStream.create();
combinedStream.append(fs.createReadStream('file1.txt'));
combinedStream.append(fs.createReadStream('file2.txt'));
combinedStream.pipe(fs.createWriteStream('combined.txt'));
```
While the example above works great, it will pause all source streams until
they are needed. If you don't want that to happen, you can set `pauseStreams`
to `false`:
``` javascript
var CombinedStream = require('combined-stream');
var fs = require('fs');
var combinedStream = CombinedStream.create({pauseStreams: false});
combinedStream.append(fs.createReadStream('file1.txt'));
combinedStream.append(fs.createReadStream('file2.txt'));
combinedStream.pipe(fs.createWriteStream('combined.txt'));
```
However, what if you don't have all the source streams yet, or you don't want
to allocate the resources (file descriptors, memory, etc.) for them right away?
Well, in that case you can simply provide a callback that supplies the stream
by calling a `next()` function:
``` javascript
var CombinedStream = require('combined-stream');
var fs = require('fs');
var combinedStream = CombinedStream.create();
combinedStream.append(function(next) {
next(fs.createReadStream('file1.txt'));
});
combinedStream.append(function(next) {
next(fs.createReadStream('file2.txt'));
});
combinedStream.pipe(fs.createWriteStream('combined.txt'));
```
## API
### CombinedStream.create([options])
Returns a new combined stream object. Available options are:
* `maxDataSize`
* `pauseStreams`
The effect of those options is described below.
### combinedStream.pauseStreams = `true`
Whether to apply back pressure to the underlaying streams. If set to `false`,
the underlaying streams will never be paused. If set to `true`, the
underlaying streams will be paused right after being appended, as well as when
`delayedStream.pipe()` wants to throttle.
### combinedStream.maxDataSize = `2 * 1024 * 1024`
The maximum amount of bytes (or characters) to buffer for all source streams.
If this value is exceeded, `combinedStream` emits an `'error'` event.
### combinedStream.dataSize = `0`
The amount of bytes (or characters) currently buffered by `combinedStream`.
### combinedStream.append(stream)
Appends the given `stream` to the combinedStream object. If `pauseStreams` is
set to `true, this stream will also be paused right away.
`streams` can also be a function that takes one parameter called `next`. `next`
is a function that must be invoked in order to provide the `next` stream, see
example above.
Regardless of how the `stream` is appended, combined-stream always attaches an
`'error'` listener to it, so you don't have to do that manually.
Special case: `stream` can also be a String or Buffer.
### combinedStream.write(data)
You should not call this, `combinedStream` takes care of piping the appended
streams into itself for you.
### combinedStream.resume()
Causes `combinedStream` to start drain the streams it manages. The function is
idempotent, and also emits a `'resume'` event each time which usually goes to
the stream that is currently being drained.
### combinedStream.pause();
If `combinedStream.pauseStreams` is set to `false`, this does nothing.
Otherwise a `'pause'` event is emitted, this goes to the stream that is
currently being drained, so you can use it to apply back pressure.
### combinedStream.end();
Sets `combinedStream.writable` to false, emits an `'end'` event, and removes
all streams from the queue.
### combinedStream.destroy();
Same as `combinedStream.end()`, except it emits a `'close'` event instead of
`'end'`.
## License
combined-stream is licensed under the MIT license.

188
node_modules/combined-stream/lib/combined_stream.js generated vendored Normal file
View File

@ -0,0 +1,188 @@
var util = require('util');
var Stream = require('stream').Stream;
var DelayedStream = require('delayed-stream');
module.exports = CombinedStream;
function CombinedStream() {
this.writable = false;
this.readable = true;
this.dataSize = 0;
this.maxDataSize = 2 * 1024 * 1024;
this.pauseStreams = true;
this._released = false;
this._streams = [];
this._currentStream = null;
}
util.inherits(CombinedStream, Stream);
CombinedStream.create = function(options) {
var combinedStream = new this();
options = options || {};
for (var option in options) {
combinedStream[option] = options[option];
}
return combinedStream;
};
CombinedStream.isStreamLike = function(stream) {
return (typeof stream !== 'function')
&& (typeof stream !== 'string')
&& (typeof stream !== 'boolean')
&& (typeof stream !== 'number')
&& (!Buffer.isBuffer(stream));
};
CombinedStream.prototype.append = function(stream) {
var isStreamLike = CombinedStream.isStreamLike(stream);
if (isStreamLike) {
if (!(stream instanceof DelayedStream)) {
var newStream = DelayedStream.create(stream, {
maxDataSize: Infinity,
pauseStream: this.pauseStreams,
});
stream.on('data', this._checkDataSize.bind(this));
stream = newStream;
}
this._handleErrors(stream);
if (this.pauseStreams) {
stream.pause();
}
}
this._streams.push(stream);
return this;
};
CombinedStream.prototype.pipe = function(dest, options) {
Stream.prototype.pipe.call(this, dest, options);
this.resume();
return dest;
};
CombinedStream.prototype._getNext = function() {
this._currentStream = null;
var stream = this._streams.shift();
if (typeof stream == 'undefined') {
this.end();
return;
}
if (typeof stream !== 'function') {
this._pipeNext(stream);
return;
}
var getStream = stream;
getStream(function(stream) {
var isStreamLike = CombinedStream.isStreamLike(stream);
if (isStreamLike) {
stream.on('data', this._checkDataSize.bind(this));
this._handleErrors(stream);
}
this._pipeNext(stream);
}.bind(this));
};
CombinedStream.prototype._pipeNext = function(stream) {
this._currentStream = stream;
var isStreamLike = CombinedStream.isStreamLike(stream);
if (isStreamLike) {
stream.on('end', this._getNext.bind(this));
stream.pipe(this, {end: false});
return;
}
var value = stream;
this.write(value);
this._getNext();
};
CombinedStream.prototype._handleErrors = function(stream) {
var self = this;
stream.on('error', function(err) {
self._emitError(err);
});
};
CombinedStream.prototype.write = function(data) {
this.emit('data', data);
};
CombinedStream.prototype.pause = function() {
if (!this.pauseStreams) {
return;
}
if(this.pauseStreams && this._currentStream && typeof(this._currentStream.pause) == 'function') this._currentStream.pause();
this.emit('pause');
};
CombinedStream.prototype.resume = function() {
if (!this._released) {
this._released = true;
this.writable = true;
this._getNext();
}
if(this.pauseStreams && this._currentStream && typeof(this._currentStream.resume) == 'function') this._currentStream.resume();
this.emit('resume');
};
CombinedStream.prototype.end = function() {
this._reset();
this.emit('end');
};
CombinedStream.prototype.destroy = function() {
this._reset();
this.emit('close');
};
CombinedStream.prototype._reset = function() {
this.writable = false;
this._streams = [];
this._currentStream = null;
};
CombinedStream.prototype._checkDataSize = function() {
this._updateDataSize();
if (this.dataSize <= this.maxDataSize) {
return;
}
var message =
'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.';
this._emitError(new Error(message));
};
CombinedStream.prototype._updateDataSize = function() {
this.dataSize = 0;
var self = this;
this._streams.forEach(function(stream) {
if (!stream.dataSize) {
return;
}
self.dataSize += stream.dataSize;
});
if (this._currentStream && this._currentStream.dataSize) {
this.dataSize += this._currentStream.dataSize;
}
};
CombinedStream.prototype._emitError = function(err) {
this._reset();
this.emit('error', err);
};

100
node_modules/combined-stream/package.json generated vendored Normal file
View File

@ -0,0 +1,100 @@
{
"_args": [
[
{
"raw": "combined-stream@^1.0.5",
"scope": null,
"escapedName": "combined-stream",
"name": "combined-stream",
"rawSpec": "^1.0.5",
"spec": ">=1.0.5 <2.0.0",
"type": "range"
},
"/home/burchettm/statsbot/node_modules/form-data"
]
],
"_from": "combined-stream@>=1.0.5 <2.0.0",
"_id": "combined-stream@1.0.5",
"_inCache": true,
"_location": "/combined-stream",
"_nodeVersion": "0.12.4",
"_npmUser": {
"name": "alexindigo",
"email": "iam@alexindigo.com"
},
"_npmVersion": "2.10.1",
"_phantomChildren": {},
"_requested": {
"raw": "combined-stream@^1.0.5",
"scope": null,
"escapedName": "combined-stream",
"name": "combined-stream",
"rawSpec": "^1.0.5",
"spec": ">=1.0.5 <2.0.0",
"type": "range"
},
"_requiredBy": [
"/form-data"
],
"_resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
"_shasum": "938370a57b4a51dea2c77c15d5c5fdf895164009",
"_shrinkwrap": null,
"_spec": "combined-stream@^1.0.5",
"_where": "/home/burchettm/statsbot/node_modules/form-data",
"author": {
"name": "Felix Geisendörfer",
"email": "felix@debuggable.com",
"url": "http://debuggable.com/"
},
"bugs": {
"url": "https://github.com/felixge/node-combined-stream/issues"
},
"dependencies": {
"delayed-stream": "~1.0.0"
},
"description": "A stream that emits multiple other streams one after another.",
"devDependencies": {
"far": "~0.0.7"
},
"directories": {},
"dist": {
"shasum": "938370a57b4a51dea2c77c15d5c5fdf895164009",
"tarball": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz"
},
"engines": {
"node": ">= 0.8"
},
"gitHead": "cfc7b815d090a109bcedb5bb0f6713148d55a6b7",
"homepage": "https://github.com/felixge/node-combined-stream",
"license": "MIT",
"main": "./lib/combined_stream",
"maintainers": [
{
"name": "felixge",
"email": "felix@debuggable.com"
},
{
"name": "celer",
"email": "dtyree77@gmail.com"
},
{
"name": "alexindigo",
"email": "iam@alexindigo.com"
},
{
"name": "apechimp",
"email": "apeherder@gmail.com"
}
],
"name": "combined-stream",
"optionalDependencies": {},
"readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git://github.com/felixge/node-combined-stream.git"
},
"scripts": {
"test": "node test/run.js"
},
"version": "1.0.5"
}

68
node_modules/component-emitter/History.md generated vendored Normal file
View File

@ -0,0 +1,68 @@
1.2.1 / 2016-04-18
==================
* enable client side use
1.2.0 / 2014-02-12
==================
* prefix events with `$` to support object prototype method names
1.1.3 / 2014-06-20
==================
* republish for npm
* add LICENSE file
1.1.2 / 2014-02-10
==================
* package: rename to "component-emitter"
* package: update "main" and "component" fields
* Add license to Readme (same format as the other components)
* created .npmignore
* travis stuff
1.1.1 / 2013-12-01
==================
* fix .once adding .on to the listener
* docs: Emitter#off()
* component: add `.repo` prop
1.1.0 / 2013-10-20
==================
* add `.addEventListener()` and `.removeEventListener()` aliases
1.0.1 / 2013-06-27
==================
* add support for legacy ie
1.0.0 / 2013-02-26
==================
* add `.off()` support for removing all listeners
0.0.6 / 2012-10-08
==================
* add `this._callbacks` initialization to prevent funky gotcha
0.0.5 / 2012-09-07
==================
* fix `Emitter.call(this)` usage
0.0.3 / 2012-07-11
==================
* add `.listeners()`
* rename `.has()` to `.hasListeners()`
0.0.2 / 2012-06-28
==================
* fix `.off()` with `.once()`-registered callbacks

24
node_modules/component-emitter/LICENSE generated vendored Normal file
View File

@ -0,0 +1,24 @@
(The MIT License)
Copyright (c) 2014 Component contributors <dev@component.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.

74
node_modules/component-emitter/Readme.md generated vendored Normal file
View File

@ -0,0 +1,74 @@
# Emitter [![Build Status](https://travis-ci.org/component/emitter.png)](https://travis-ci.org/component/emitter)
Event emitter component.
## Installation
```
$ component install component/emitter
```
## API
### Emitter(obj)
The `Emitter` may also be used as a mixin. For example
a "plain" object may become an emitter, or you may
extend an existing prototype.
As an `Emitter` instance:
```js
var Emitter = require('emitter');
var emitter = new Emitter;
emitter.emit('something');
```
As a mixin:
```js
var Emitter = require('emitter');
var user = { name: 'tobi' };
Emitter(user);
user.emit('im a user');
```
As a prototype mixin:
```js
var Emitter = require('emitter');
Emitter(User.prototype);
```
### Emitter#on(event, fn)
Register an `event` handler `fn`.
### Emitter#once(event, fn)
Register a single-shot `event` handler `fn`,
removed immediately after it is invoked the
first time.
### Emitter#off(event, fn)
* Pass `event` and `fn` to remove a listener.
* Pass `event` to remove all listeners on that event.
* Pass nothing to remove all listeners on all events.
### Emitter#emit(event, ...)
Emit an `event` with variable option args.
### Emitter#listeners(event)
Return an array of callbacks, or an empty array.
### Emitter#hasListeners(event)
Check if this emitter has `event` handlers.
## License
MIT

163
node_modules/component-emitter/index.js generated vendored Normal file
View File

@ -0,0 +1,163 @@
/**
* Expose `Emitter`.
*/
if (typeof module !== 'undefined') {
module.exports = Emitter;
}
/**
* Initialize a new `Emitter`.
*
* @api public
*/
function Emitter(obj) {
if (obj) return mixin(obj);
};
/**
* Mixin the emitter properties.
*
* @param {Object} obj
* @return {Object}
* @api private
*/
function mixin(obj) {
for (var key in Emitter.prototype) {
obj[key] = Emitter.prototype[key];
}
return obj;
}
/**
* Listen on the given `event` with `fn`.
*
* @param {String} event
* @param {Function} fn
* @return {Emitter}
* @api public
*/
Emitter.prototype.on =
Emitter.prototype.addEventListener = function(event, fn){
this._callbacks = this._callbacks || {};
(this._callbacks['$' + event] = this._callbacks['$' + event] || [])
.push(fn);
return this;
};
/**
* Adds an `event` listener that will be invoked a single
* time then automatically removed.
*
* @param {String} event
* @param {Function} fn
* @return {Emitter}
* @api public
*/
Emitter.prototype.once = function(event, fn){
function on() {
this.off(event, on);
fn.apply(this, arguments);
}
on.fn = fn;
this.on(event, on);
return this;
};
/**
* Remove the given callback for `event` or all
* registered callbacks.
*
* @param {String} event
* @param {Function} fn
* @return {Emitter}
* @api public
*/
Emitter.prototype.off =
Emitter.prototype.removeListener =
Emitter.prototype.removeAllListeners =
Emitter.prototype.removeEventListener = function(event, fn){
this._callbacks = this._callbacks || {};
// all
if (0 == arguments.length) {
this._callbacks = {};
return this;
}
// specific event
var callbacks = this._callbacks['$' + event];
if (!callbacks) return this;
// remove all handlers
if (1 == arguments.length) {
delete this._callbacks['$' + event];
return this;
}
// remove specific handler
var cb;
for (var i = 0; i < callbacks.length; i++) {
cb = callbacks[i];
if (cb === fn || cb.fn === fn) {
callbacks.splice(i, 1);
break;
}
}
return this;
};
/**
* Emit `event` with the given args.
*
* @param {String} event
* @param {Mixed} ...
* @return {Emitter}
*/
Emitter.prototype.emit = function(event){
this._callbacks = this._callbacks || {};
var args = [].slice.call(arguments, 1)
, callbacks = this._callbacks['$' + event];
if (callbacks) {
callbacks = callbacks.slice(0);
for (var i = 0, len = callbacks.length; i < len; ++i) {
callbacks[i].apply(this, args);
}
}
return this;
};
/**
* Return array of callbacks for `event`.
*
* @param {String} event
* @return {Array}
* @api public
*/
Emitter.prototype.listeners = function(event){
this._callbacks = this._callbacks || {};
return this._callbacks['$' + event] || [];
};
/**
* Check if this emitter has `event` handlers.
*
* @param {String} event
* @return {Boolean}
* @api public
*/
Emitter.prototype.hasListeners = function(event){
return !! this.listeners(event).length;
};

216
node_modules/component-emitter/package.json generated vendored Normal file
View File

@ -0,0 +1,216 @@
{
"_args": [
[
{
"raw": "component-emitter@~1.2.0",
"scope": null,
"escapedName": "component-emitter",
"name": "component-emitter",
"rawSpec": "~1.2.0",
"spec": ">=1.2.0 <1.3.0",
"type": "range"
},
"/home/burchettm/statsbot/node_modules/superagent"
]
],
"_from": "component-emitter@>=1.2.0 <1.3.0",
"_id": "component-emitter@1.2.1",
"_inCache": true,
"_location": "/component-emitter",
"_nodeVersion": "0.12.4",
"_npmOperationalInternal": {
"host": "packages-12-west.internal.npmjs.com",
"tmp": "tmp/component-emitter-1.2.1.tgz_1461005707641_0.14232611074112356"
},
"_npmUser": {
"name": "nami-doc",
"email": "karp@hotmail.fr"
},
"_npmVersion": "2.10.1",
"_phantomChildren": {},
"_requested": {
"raw": "component-emitter@~1.2.0",
"scope": null,
"escapedName": "component-emitter",
"name": "component-emitter",
"rawSpec": "~1.2.0",
"spec": ">=1.2.0 <1.3.0",
"type": "range"
},
"_requiredBy": [
"/superagent"
],
"_resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
"_shasum": "137918d6d78283f7df7a6b7c5a63e140e69425e6",
"_shrinkwrap": null,
"_spec": "component-emitter@~1.2.0",
"_where": "/home/burchettm/statsbot/node_modules/superagent",
"bugs": {
"url": "https://github.com/component/emitter/issues"
},
"component": {
"scripts": {
"emitter/index.js": "index.js"
}
},
"dependencies": {},
"description": "Event emitter",
"devDependencies": {
"mocha": "*",
"should": "*"
},
"directories": {},
"dist": {
"shasum": "137918d6d78283f7df7a6b7c5a63e140e69425e6",
"tarball": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz"
},
"files": [
"index.js",
"LICENSE"
],
"gitHead": "187492ab8028c7221b589bdfd482b715149cd868",
"homepage": "https://github.com/component/emitter#readme",
"license": "MIT",
"main": "index.js",
"maintainers": [
{
"name": "tootallnate",
"email": "nathan@tootallnate.net"
},
{
"name": "hughsk",
"email": "hughskennedy@gmail.com"
},
{
"name": "trevorgerhardt",
"email": "trevorgerhardt@gmail.com"
},
{
"name": "timaschew",
"email": "timaschew@gmail.com"
},
{
"name": "tjholowaychuk",
"email": "tj@vision-media.ca"
},
{
"name": "rauchg",
"email": "rauchg@gmail.com"
},
{
"name": "retrofox",
"email": "rdsuarez@gmail.com"
},
{
"name": "coreh",
"email": "thecoreh@gmail.com"
},
{
"name": "forbeslindesay",
"email": "forbes@lindesay.co.uk"
},
{
"name": "kelonye",
"email": "kelonyemitchel@gmail.com"
},
{
"name": "mattmueller",
"email": "mattmuelle@gmail.com"
},
{
"name": "yields",
"email": "yields@icloud.com"
},
{
"name": "anthonyshort",
"email": "antshort@gmail.com"
},
{
"name": "jongleberry",
"email": "jonathanrichardong@gmail.com"
},
{
"name": "ianstormtaylor",
"email": "ian@ianstormtaylor.com"
},
{
"name": "cristiandouce",
"email": "cristian@gravityonmars.com"
},
{
"name": "swatinem",
"email": "arpad.borsos@googlemail.com"
},
{
"name": "stagas",
"email": "gstagas@gmail.com"
},
{
"name": "amasad",
"email": "amjad.masad@gmail.com"
},
{
"name": "juliangruber",
"email": "julian@juliangruber.com"
},
{
"name": "calvinfo",
"email": "calvin@calv.info"
},
{
"name": "dominicbarnes",
"email": "dominic@dbarnes.info"
},
{
"name": "blakeembrey",
"email": "hello@blakeembrey.com"
},
{
"name": "timoxley",
"email": "secoif@gmail.com"
},
{
"name": "jonathanong",
"email": "jonathanrichardong@gmail.com"
},
{
"name": "queckezz",
"email": "fabian.eichenberger@gmail.com"
},
{
"name": "nami-doc",
"email": "vendethiel@hotmail.fr"
},
{
"name": "clintwood",
"email": "clint@anotherway.co.za"
},
{
"name": "thehydroimpulse",
"email": "dnfagnan@gmail.com"
},
{
"name": "stephenmathieson",
"email": "me@stephenmathieson.com"
},
{
"name": "dfcreative",
"email": "df.creative@gmail.com"
},
{
"name": "defunctzombie",
"email": "shtylman@gmail.com"
}
],
"name": "component-emitter",
"optionalDependencies": {},
"readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git+https://github.com/component/emitter.git"
},
"scripts": {
"test": "make test"
},
"version": "1.2.1"
}

1
node_modules/console-stamp/.idea/.name generated vendored Normal file
View File

@ -0,0 +1 @@
node-console-stamp

23
node_modules/console-stamp/.idea/compiler.xml generated vendored Normal file
View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<option name="DEFAULT_COMPILER" value="Javac" />
<resourceExtensions />
<wildcardResourcePatterns>
<entry name="!?*.java" />
<entry name="!?*.form" />
<entry name="!?*.class" />
<entry name="!?*.groovy" />
<entry name="!?*.scala" />
<entry name="!?*.flex" />
<entry name="!?*.kt" />
<entry name="!?*.clj" />
<entry name="!?*.aj" />
</wildcardResourcePatterns>
<annotationProcessing>
<profile default="true" name="Default" enabled="false">
<processorPath useClasspath="true" />
</profile>
</annotationProcessing>
</component>
</project>

View File

@ -0,0 +1,3 @@
<component name="CopyrightManager">
<settings default="" />
</component>

5
node_modules/console-stamp/.idea/encodings.xml generated vendored Normal file
View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false" />
</project>

View File

@ -0,0 +1,16 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0" is_locked="false">
<option name="myName" value="Project Default" />
<option name="myLocal" value="false" />
<inspection_tool class="CssInvalidAtRule" enabled="false" level="ERROR" enabled_by_default="false" />
<inspection_tool class="JSHint" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="JSUnresolvedFunction" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
<inspection_tool class="JSUnresolvedVariable" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
<inspection_tool class="SpellCheckingInspection" enabled="false" level="TYPO" enabled_by_default="false">
<option name="processCode" value="true" />
<option name="processLiterals" value="true" />
<option name="processComments" value="true" />
</inspection_tool>
<inspection_tool class="TaskInspection" enabled="false" level="INFO" enabled_by_default="false" />
</profile>
</component>

View File

@ -0,0 +1,7 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="PROJECT_PROFILE" value="Project Default" />
<option name="USE_PROJECT_PROFILE" value="true" />
<version value="1.0" />
</settings>
</component>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JavaScriptLibraryMappings">
<file url="file://$PROJECT_DIR$" libraries="{node-console-stamp/node_modules}" />
<includedPredefinedLibrary name="Node.js Core" />
</component>
</project>

17
node_modules/console-stamp/.idea/jsLinters/jshint.xml generated vendored Normal file
View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JSHintConfiguration" version="2.4.4" use-config-file="false">
<option bitwise="true" />
<option browser="true" />
<option curly="true" />
<option eqeqeq="true" />
<option forin="true" />
<option maxerr="50" />
<option noarg="true" />
<option noempty="true" />
<option nonew="true" />
<option strict="true" />
<option undef="true" />
</component>
</project>

View File

@ -0,0 +1,9 @@
<component name="libraryTable">
<library name="node-console-stamp node_modules">
<CLASSES>
<root url="file://$PROJECT_DIR$/node_modules" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

5
node_modules/console-stamp/.idea/misc.xml generated vendored Normal file
View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="IdProvider" IDEtalkID="E8E4AAD01AFB32B8AEEFA693BA983A2C" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_3" assert-keyword="false" jdk-15="false" />
</project>

8
node_modules/console-stamp/.idea/modules.xml generated vendored Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/node-console-stamp.iml" filepath="$PROJECT_DIR$/.idea/node-console-stamp.iml" />
</modules>
</component>
</project>

View File

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="false">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="node-console-stamp node_modules" level="project" />
<orderEntry type="module-library">
<library name="PHP Runtime" type="php">
<CLASSES>
<root url="jar://$APPLICATION_PLUGINS_DIR$/php/lib/php.jar!/stubs/standard" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$APPLICATION_PLUGINS_DIR$/php/lib/php.jar!/stubs/standard" />
</SOURCES>
</library>
</orderEntry>
</component>
</module>

View File

@ -0,0 +1,5 @@
<component name="DependencyValidationManager">
<state>
<option name="SKIP_IMPORT_STATEMENTS" value="false" />
</state>
</component>

124
node_modules/console-stamp/.idea/uiDesigner.xml generated vendored Normal file
View File

@ -0,0 +1,124 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Palette2">
<group name="Swing">
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
</item>
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
</item>
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true">
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
</item>
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
<initial-values>
<property name="text" value="Button" />
</initial-values>
</item>
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="RadioButton" />
</initial-values>
</item>
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="CheckBox" />
</initial-values>
</item>
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
<initial-values>
<property name="text" value="Label" />
</initial-values>
</item>
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
</item>
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
</item>
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
<preferred-size width="-1" height="20" />
</default-constraints>
</item>
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
</item>
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
</item>
</group>
</component>
</project>

7
node_modules/console-stamp/.idea/vcs.xml generated vendored Normal file
View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

1518
node_modules/console-stamp/.idea/workspace.xml generated vendored Normal file

File diff suppressed because it is too large Load Diff

2
node_modules/console-stamp/.npmignore generated vendored Normal file
View File

@ -0,0 +1,2 @@
gfx/*
test*

253
node_modules/console-stamp/README.md generated vendored Normal file
View File

@ -0,0 +1,253 @@
# console-stamp
[![npm][npm-image]][npm-url]
[![downloads][downloads-image]][downloads-url]
[npm-image]: https://img.shields.io/npm/v/console-stamp.svg?style=flat-square
[npm-url]: https://npmjs.org/package/console-stamp
[downloads-image]: https://img.shields.io/npm/dm/console-stamp.svg?style=flat-square
[downloads-url]: https://npmjs.org/package/console-stamp
This module enables you to patch the console's methods in Node.js, to add timestamp prefix based on a given string pattern, and more...
## Usage ##
### Install
npm install console-stamp
### Patching the console
require("console-stamp")(console, [options]);
#### console
The global console or [custom console](#customconsole).
#### options {Object|String}
From version 2.0 the second parameter is an object with several options. As a backward compatibillity feature this parameter can be a string containing the pattern.
* **options.pattern** {String}<br>A string with date format based on [Javascript Date Format](http://blog.stevenlevithan.com/archives/date-time-format)<br>**Default**: "ddd mmm dd yyyy HH:MM:ss"
* **options.formatter** {Function}<br>A custom date formatter that should return a formmatted date string.
* **options.label** {Boolean}<br>If true it will show the label (LOG | INFO | WARN | ERROR)<br>**Default**: true
* **options.include** {Array}<br>An array containing the methods to include in the patch<br>**Default**: ["log", "info", "warn", "error", "dir", "assert"]
* **options.exclude** {Array}<br>An array containing the methods to exclude in the patch<br>**Default**: [] \(none)
* **options.disable** {Array}<br>An array containing the methods to disable in the patch<br>**Default**: [] \(none)
* **options.level** {String}<br>A string choosing the most verbose logging function to allow. Ordered/grouped as such: "log dir", "info", "warn assert", "error"<br>**Default**: log
* **options.extend** {Object}<br>An object describing methods and their associated log level, to extend the existing `method <-> log level` pairs.<br>For an example see [Custom methods](#custommethods).
* **options.metadata** {String/Object/Function}<br>Types can be String, Object (interpreted with util.inspect), or Function. See the test-metadata.js for examples.<br>**Note** that metadata can still be sent as the third parameter (as in vesion 1.6) as a backward compatibillity feature, but this is deprecated. <br>**Default**: undefined
* **options.stdout** {WritableStream}<br>A custom `stdout` to use with [custom console](#customconsole).<br>**Default:** `process.stdout`
* **options.stderr** {WritableStream}<br>A custom `stderr` to use with [custom console](#customconsole).<br>**Default:** `options.stdout` or `process.stdout`
* **options.colors** {Object}<br>An object representing a color theme. More info [here](https://www.npmjs.com/package/chalk).
* **options.colors.stamp** {String/Array<String>/Function} <br>**Default:** []
* **options.colors.label** {String/Array<String>/Function} <br>**Default:** []
* **options.colors.metadata** {String/Array<String>/Function} <br>**Default:** []
Note: To combine colors, bgColors and style, set them as an array like this:
...
stamp: ["black", "bgYellow", "underline"]
...
Or chain Chalk functions like this:
...
stamp: require("chalk").red.bgYellow.underline;
...
Note also that by sending the parameter `--no-color` when you start your node app, will prevent any colors from console.
$ node my-app.js --no-color
### Example
// Patch console.x methods in order to add timestamp information
require( "console-stamp" )( console, { pattern : "dd/mm/yyyy HH:MM:ss.l" } );
console.log("Hello World!");
// -> [26/06/2015 14:02:48.062] [LOG] Hello World!
var port = 8080;
console.log("Server running at port %d", port);
// -> [26/06/2015 16:02:35.325] [LOG] Server running at port 8080
&nbsp;
console.log( "This is a console.log message" );
console.info( "This is a console.info message" );
console.warn( "This is a console.warn message" );
console.error( "This is a console.error message" );
console.dir( {bar: "This is a console.dir message"} );
Result:
[26/06/2015 12:44:31.777] [LOG] This is a console.log message
[26/06/2015 12:44:31.777] [INFO] This is a console.info message
[26/06/2015 12:44:31.779] [WARN] This is a console.warn message
[26/06/2015 12:44:31.779] [ERROR] This is a console.error message
[26/06/2015 12:44:31.779] [DIR] { bar: 'This is a console.dir message' }
and
require( "console-stamp" )( console, {
metadata: function () {
return ("[" + process.memoryUsage().rss + "]");
},
colors: {
stamp: "yellow",
label: "white",
metadata: "green"
}
} );
console.log( "This is a console.log message" );
console.info( "This is a console.info message" );
console.warn( "This is a console.warn message" );
console.error( "This is a console.error message" );
console.dir( {bar: "This is a console.dir message"} );
Result:
![Console](gfx/console.png)
<a name="customconsole"></a>
### Custom Console [v0.2.4+]
As of version 0.2.4 you can also create a custom console with its own `stdout` and `stderr` like this:
```
var fs = require( 'fs' );
var output = fs.createWriteStream( './stdout.log' );
var errorOutput = fs.createWriteStream( './stderr.log' );
var logger = new console.Console( output, errorOutput );
console_stamp( logger, {
stdout: output,
stderr: errorOutput
} );
```
Everything is then written to the files.
**NOTE:** If `stderr` isn't passed, warning and error output will be sent to the given `stdout`.
### Custom Formatter Example
Custom formatter using moment.js
var moment = require('moment');
moment.locale('ja');
require( "console-stamp" )( console, {
formatter:function(){
return moment().format("LLLL");
}
} );
console.log( "This is a console.log message" );
console.info( "This is a console.info message" );
console.warn( "This is a console.warn message" );
console.error( "This is a console.error message" );
console.dir( {bar: "This is a console.dir message"} );
Result:
[2016年5月12日午前11時10分 木曜日] [LOG] This is a console.log message
[2016年5月12日午前11時10分 木曜日] [INFO] This is a console.info message
[2016年5月12日午前11時10分 木曜日] [WARN] This is a console.warn message
[2016年5月12日午前11時10分 木曜日] [ERROR] This is a console.error message
[2016年5月12日午前11時10分 木曜日] [DIR] { bar: 'This is a console.dir message' }
<a name="custommethods"></a>
### Custom Methods
The **option.extend** option enables the extention or modification of the logging methods and their associated log levels:
The default logging methods and their log levels are as follows:
```javascript
var levelPriorities = {
log: 4,
info: 3,
warn: 2,
error: 1,
assert: 2,
dir: 4
};
```
Combined with the **include** option, the **extend** option enables the usage of custom console logging methods to be used with this module, for example:
```javascript
// Extending the console object with custom methods
console.debug = function(msg) {
console.log(msg);
}
console.fatal = function(msg) {
console.log(msg);
process.exit(1);
}
// Initialising the output formatter
require('console-stamp')(console, {
pattern: "HH:MM:ss",
extend: {
debug: 5,
fatal: 0,
},
include: ["debug", "info", "warn", "error", "fatal"],
level: "debug",
});
```
**Note** how the `log` method is omitted from the `include` list. Because the custom functions call `console.log` internally, including the `log` method would print double-formatted output.
### Adding Metadata ###
Types can be string, object (interpreted with util.inspect), or function.
See the [test-metadata.js](https://github.com/starak/node-console-stamp/blob/master/test-metadata.js) for examples.
#### String example
require("console-stamp")(console, {
pattern:"HH:MM:ss.l",
metadata:'[' + process.pid + ']'
});
console.log('Metadata applied.');
Result:
[26/06/2015 12:44:31.779] [LOG] [7785] Metadata applied.
#### Function example
var util = require("util");
require("console-stamp")(console, {
pattern:"HH:MM:ss.l",
metadata: function(){ return '[' + (process.memoryUsage().rss) + ']'; });
console.log('Metadata applied.');
Result:
[18:10:30.875] [LOG] [14503936] Metadata applied.

14
node_modules/console-stamp/defaults.json generated vendored Normal file
View File

@ -0,0 +1,14 @@
{
"pattern": "",
"include": ["log", "info", "warn", "error", "dir", "assert"],
"exclude": [],
"disable": [],
"level": "log",
"extend": {},
"label": true,
"colors": {
"stamp":[],
"label":[],
"metadata":[]
}
}

176
node_modules/console-stamp/main.js generated vendored Normal file
View File

@ -0,0 +1,176 @@
/*jshint node:true, bitwise:false */
/**
*
* Node Console stamp by Ståle Raknes
*
*/
"use strict";
var defaultDateFormat = require( "dateformat" );
var merge = require( "merge" );
var chalk = require( "chalk" );
var defaults = require( "./defaults.json" );
var util = require( 'util' );
module.exports = function ( con, options, prefix_metadata ) {
// If the console is patched already, restore it
if ( con.__ts__ && "restoreConsole" in con ) {
con.restoreConsole();
}
var pattern;
if ( typeof options === "string" ) {
// Fallback to version 0.1.x
pattern = options;
options = merge( {}, defaults );
} else {
options = merge( {}, defaults, (options || {}) );
pattern = options.pattern;
prefix_metadata = prefix_metadata || options.metadata;
}
var stdout = options.stdout;
var stderr = options.stderr || options.stdout;
var levelPriorities = {
log: 4,
info: 3,
warn: 2,
error: 1,
assert: 2,
dir: 4
};
//Extend log levels
levelPriorities = merge( {}, levelPriorities, (options.extend || {}) );
var getAllowedLogFunctions = function ( level ) {
var logFunctions = [],
levelPriority = levelPriorities[level];
for ( var logFunction in levelPriorities ) {
if ( levelPriorities.hasOwnProperty( logFunction ) ) {
if ( levelPriority >= levelPriorities[logFunction] ) {
logFunctions.push( logFunction );
}
}
}
return logFunctions;
};
var dateFormat = options.formatter || defaultDateFormat,
allowedLogFunctions = getAllowedLogFunctions( options.level );
options.disable = options.disable.concat( options.include.filter( function ( m ) {
return !~options.exclude.indexOf( m ) && !~allowedLogFunctions.indexOf( m );
} ) );
options.include = options.include.filter( function filter( m ) {
return !~options.exclude.indexOf( m ) && !~options.disable.indexOf( m );
} );
//SET COLOR THEME START
var noColor = function ( str ) {
return str;
}; //Default behaviour (no color)
var getColor = function ( origColor ) {
//If color is a chalk function already, just return it
if ( typeof origColor === 'function' ) {
return origColor;
}
//If color is an string, check if a function in chalk exists
if ( typeof origColor === 'string' ) {
return chalk["" + origColor] ? chalk["" + origColor] : noColor;
}
//If color is an array, check the contents for color strings
if ( Array.isArray( origColor ) ) {
if ( origColor.length > 0 ) {
var color = chalk;
for ( var i = 0; i < origColor.length; i++ ) {
if ( typeof origColor[i] === 'string' ) {
color = color["" + origColor[i]];
}
}
return color;
}
else {
return noColor;
}
}
return noColor;
};
var colorTheme = {};
colorTheme.stamp = getColor( options.colors.stamp );
colorTheme.label = getColor( options.colors.label );
colorTheme.metadata = getColor( options.colors.metadata );
//SET COLOR THEME END
var original_functions = [];
var slice = Array.prototype.slice;
options.include.forEach( function ( f ) {
original_functions.push( [f, con[f]] );
var org = con[f];
con[f] = function () {
var prefix = colorTheme.stamp( "[" + dateFormat( pattern ) + "]" ) + " ";
var args = slice.call( arguments );
// Add label if flag is set
if ( options.label ) {
prefix += colorTheme.label( "[" + f.toUpperCase() + "]" ) + " ".substr( f.length );
}
// Add metadata if any
var metadata = "";
if ( typeof prefix_metadata === 'function' ) {
metadata = prefix_metadata( f, args );
} else if ( typeof prefix_metadata === 'object' ) {
metadata = util.inspect( prefix_metadata );
} else if ( typeof prefix_metadata !== 'undefined' ) {
metadata = prefix_metadata;
}
if ( metadata ) {
prefix += colorTheme.metadata( metadata ) + " "; //Metadata
}
if ( f === "error" || f === "warn" || ( f === "assert" && !args[0] ) ) {
( stderr || process.stderr ).write( prefix );
} else if ( f !== "assert" ) {
( stdout || process.stdout ).write( prefix );
}
return org.apply( con, args );
};
} );
options.disable.forEach( function ( f ) {
original_functions.push( [f, con[f]] );
con[f] = function () { };
} );
con.restoreConsole = function () {
original_functions.forEach( function ( pair ) {
con[pair[0]] = pair[1];
delete con.__ts__;
} );
delete con.restoreConsole;
};
con.__ts__ = true;
};

123
node_modules/console-stamp/package.json generated vendored Normal file
View File

@ -0,0 +1,123 @@
{
"_args": [
[
{
"raw": "console-stamp",
"scope": null,
"escapedName": "console-stamp",
"name": "console-stamp",
"rawSpec": "",
"spec": "latest",
"type": "tag"
},
"/home/burchettm/statsbot"
]
],
"_from": "console-stamp@latest",
"_id": "console-stamp@0.2.5",
"_inCache": true,
"_location": "/console-stamp",
"_nodeVersion": "7.4.0",
"_npmOperationalInternal": {
"host": "packages-12-west.internal.npmjs.com",
"tmp": "tmp/console-stamp-0.2.5.tgz_1483721163076_0.9857860836200416"
},
"_npmUser": {
"name": "starak",
"email": "stale@raknes.net"
},
"_npmVersion": "4.0.5",
"_phantomChildren": {},
"_requested": {
"raw": "console-stamp",
"scope": null,
"escapedName": "console-stamp",
"name": "console-stamp",
"rawSpec": "",
"spec": "latest",
"type": "tag"
},
"_requiredBy": [
"#USER"
],
"_resolved": "https://registry.npmjs.org/console-stamp/-/console-stamp-0.2.5.tgz",
"_shasum": "8e88542165d8fcdcb3fa494f6df3dd15304cd6ff",
"_shrinkwrap": null,
"_spec": "console-stamp",
"_where": "/home/burchettm/statsbot",
"author": {
"name": "Ståle Raknes",
"email": "stale@raknes.net",
"url": "http://github.com/starak"
},
"bugs": {
"url": "https://github.com/starak/node-console-stamp/issues"
},
"contributors": [
{
"name": "Ståle Raknes",
"url": "http://github.com/starak"
},
{
"name": "Jotham Read",
"url": "https://github.com/jotham"
},
{
"name": "Christiaan Westerbeek",
"url": "https://github.com/devotis"
},
{
"name": "Leon Lucardie",
"url": "https://github.com/Gameleon12"
},
{
"name": "Steffan Donal",
"url": "https://github.com/SteffanDonal"
},
{
"name": "Sören Schwert",
"url": "https://github.com/sisou"
}
],
"dependencies": {
"chalk": "^1.1.1",
"dateformat": "^1.0.11",
"merge": "^1.2.0"
},
"description": "Patch NodeJS console methods in order to add timestamp information by pattern",
"devDependencies": {
"filesize": "^3.1.2",
"moment": "^2.13.0"
},
"directories": {},
"dist": {
"shasum": "8e88542165d8fcdcb3fa494f6df3dd15304cd6ff",
"tarball": "https://registry.npmjs.org/console-stamp/-/console-stamp-0.2.5.tgz"
},
"gitHead": "02ebf882bb111cf2449f7c36e26303858d4f0eec",
"homepage": "https://github.com/starak/node-console-stamp#readme",
"keywords": [
"console",
"timestamp",
"log",
"jslog",
"debug"
],
"license": "MIT",
"main": "main",
"maintainers": [
{
"name": "starak",
"email": "stale@raknes.net"
}
],
"name": "console-stamp",
"optionalDependencies": {},
"readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git+ssh://git@github.com/starak/node-console-stamp.git"
},
"scripts": {},
"version": "0.2.5"
}

0
node_modules/console-stamp/stderr.log generated vendored Normal file
View File

0
node_modules/console-stamp/stdout.log generated vendored Normal file
View File

0
node_modules/console-stamp/stdout_stderr.log generated vendored Normal file
View File

1
node_modules/cookiejar/.npmignore generated vendored Normal file
View File

@ -0,0 +1 @@
node_modules

9
node_modules/cookiejar/LICENSE generated vendored Normal file
View File

@ -0,0 +1,9 @@
The MIT License (MIT)
Copyright (c) 2013 Bradley Meck
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.

261
node_modules/cookiejar/cookiejar.js generated vendored Normal file
View File

@ -0,0 +1,261 @@
/* jshint node: true */
(function () {
"use strict";
function CookieAccessInfo(domain, path, secure, script) {
if (this instanceof CookieAccessInfo) {
this.domain = domain || undefined;
this.path = path || "/";
this.secure = !!secure;
this.script = !!script;
return this;
}
return new CookieAccessInfo(domain, path, secure, script);
}
exports.CookieAccessInfo = CookieAccessInfo;
function Cookie(cookiestr, request_domain, request_path) {
if (cookiestr instanceof Cookie) {
return cookiestr;
}
if (this instanceof Cookie) {
this.name = null;
this.value = null;
this.expiration_date = Infinity;
this.path = String(request_path || "/");
this.explicit_path = false;
this.domain = request_domain || null;
this.explicit_domain = false;
this.secure = false; //how to define default?
this.noscript = false; //httponly
if (cookiestr) {
this.parse(cookiestr, request_domain, request_path);
}
return this;
}
return new Cookie(cookiestr, request_domain, request_path);
}
exports.Cookie = Cookie;
Cookie.prototype.toString = function toString() {
var str = [this.name + "=" + this.value];
if (this.expiration_date !== Infinity) {
str.push("expires=" + (new Date(this.expiration_date)).toGMTString());
}
if (this.domain) {
str.push("domain=" + this.domain);
}
if (this.path) {
str.push("path=" + this.path);
}
if (this.secure) {
str.push("secure");
}
if (this.noscript) {
str.push("httponly");
}
return str.join("; ");
};
Cookie.prototype.toValueString = function toValueString() {
return this.name + "=" + this.value;
};
var cookie_str_splitter = /[:](?=\s*[a-zA-Z0-9_\-]+\s*[=])/g;
Cookie.prototype.parse = function parse(str, request_domain, request_path) {
if (this instanceof Cookie) {
var parts = str.split(";").filter(function (value) {
return !!value;
}),
pair = parts[0].match(/([^=]+)=([\s\S]*)/),
key = pair[1],
value = pair[2],
i;
this.name = key;
this.value = value;
for (i = 1; i < parts.length; i += 1) {
pair = parts[i].match(/([^=]+)(?:=([\s\S]*))?/);
key = pair[1].trim().toLowerCase();
value = pair[2];
switch (key) {
case "httponly":
this.noscript = true;
break;
case "expires":
this.expiration_date = value ?
Number(Date.parse(value)) :
Infinity;
break;
case "path":
this.path = value ?
value.trim() :
"";
this.explicit_path = true;
break;
case "domain":
this.domain = value ?
value.trim() :
"";
this.explicit_domain = !!this.domain;
break;
case "secure":
this.secure = true;
break;
}
}
if (!this.explicit_path) {
this.path = request_path || "/";
}
if (!this.explicit_domain) {
this.domain = request_domain;
}
return this;
}
return new Cookie().parse(str, request_domain, request_path);
};
Cookie.prototype.matches = function matches(access_info) {
if (this.noscript && access_info.script ||
this.secure && !access_info.secure ||
!this.collidesWith(access_info)) {
return false;
}
return true;
};
Cookie.prototype.collidesWith = function collidesWith(access_info) {
if ((this.path && !access_info.path) || (this.domain && !access_info.domain)) {
return false;
}
if (this.path && access_info.path.indexOf(this.path) !== 0) {
return false;
}
if (this.explicit_path && access_info.path.indexOf( this.path ) !== 0) {
return false;
}
var access_domain = access_info.domain && access_info.domain.replace(/^[\.]/,'');
var cookie_domain = this.domain && this.domain.replace(/^[\.]/,'');
if (cookie_domain === access_domain) {
return true;
}
if (cookie_domain) {
if (!this.explicit_domain) {
return false; // we already checked if the domains were exactly the same
}
var wildcard = access_domain.indexOf(cookie_domain);
if (wildcard === -1 || wildcard !== access_domain.length - cookie_domain.length) {
return false;
}
return true;
}
return true;
};
function CookieJar() {
var cookies, cookies_list, collidable_cookie;
if (this instanceof CookieJar) {
cookies = Object.create(null); //name: [Cookie]
this.setCookie = function setCookie(cookie, request_domain, request_path) {
var remove, i;
cookie = new Cookie(cookie, request_domain, request_path);
//Delete the cookie if the set is past the current time
remove = cookie.expiration_date <= Date.now();
if (cookies[cookie.name] !== undefined) {
cookies_list = cookies[cookie.name];
for (i = 0; i < cookies_list.length; i += 1) {
collidable_cookie = cookies_list[i];
if (collidable_cookie.collidesWith(cookie)) {
if (remove) {
cookies_list.splice(i, 1);
if (cookies_list.length === 0) {
delete cookies[cookie.name];
}
return false;
}
cookies_list[i] = cookie;
return cookie;
}
}
if (remove) {
return false;
}
cookies_list.push(cookie);
return cookie;
}
if (remove) {
return false;
}
cookies[cookie.name] = [cookie];
return cookies[cookie.name];
};
//returns a cookie
this.getCookie = function getCookie(cookie_name, access_info) {
var cookie, i;
cookies_list = cookies[cookie_name];
if (!cookies_list) {
return;
}
for (i = 0; i < cookies_list.length; i += 1) {
cookie = cookies_list[i];
if (cookie.expiration_date <= Date.now()) {
if (cookies_list.length === 0) {
delete cookies[cookie.name];
}
continue;
}
if (cookie.matches(access_info)) {
return cookie;
}
}
};
//returns a list of cookies
this.getCookies = function getCookies(access_info) {
var matches = [], cookie_name, cookie;
for (cookie_name in cookies) {
cookie = this.getCookie(cookie_name, access_info);
if (cookie) {
matches.push(cookie);
}
}
matches.toString = function toString() {
return matches.join(":");
};
matches.toValueString = function toValueString() {
return matches.map(function (c) {
return c.toValueString();
}).join(';');
};
return matches;
};
return this;
}
return new CookieJar();
}
exports.CookieJar = CookieJar;
//returns list of cookies that were set correctly. Cookies that are expired and removed are not returned.
CookieJar.prototype.setCookies = function setCookies(cookies, request_domain, request_path) {
cookies = Array.isArray(cookies) ?
cookies :
cookies.split(cookie_str_splitter);
var successful = [],
i,
cookie;
cookies = cookies.map(function(item){
return new Cookie(item, request_domain, request_path);
});
for (i = 0; i < cookies.length; i += 1) {
cookie = cookies[i];
if (this.setCookie(cookie, request_domain, request_path)) {
successful.push(cookie);
}
}
return successful;
};
}());

88
node_modules/cookiejar/package.json generated vendored Executable file
View File

@ -0,0 +1,88 @@
{
"_args": [
[
{
"raw": "cookiejar@2.0.6",
"scope": null,
"escapedName": "cookiejar",
"name": "cookiejar",
"rawSpec": "2.0.6",
"spec": "2.0.6",
"type": "version"
},
"/home/burchettm/statsbot/node_modules/superagent"
]
],
"_from": "cookiejar@2.0.6",
"_id": "cookiejar@2.0.6",
"_inCache": true,
"_location": "/cookiejar",
"_nodeVersion": "6.0.0-pre",
"_npmUser": {
"name": "bradleymeck",
"email": "bradley.meck@gmail.com"
},
"_npmVersion": "3.3.12",
"_phantomChildren": {},
"_requested": {
"raw": "cookiejar@2.0.6",
"scope": null,
"escapedName": "cookiejar",
"name": "cookiejar",
"rawSpec": "2.0.6",
"spec": "2.0.6",
"type": "version"
},
"_requiredBy": [
"/superagent"
],
"_resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.0.6.tgz",
"_shasum": "0abf356ad00d1c5a219d88d44518046dd026acfe",
"_shrinkwrap": null,
"_spec": "cookiejar@2.0.6",
"_where": "/home/burchettm/statsbot/node_modules/superagent",
"author": {
"name": "bradleymeck"
},
"bugs": {
"url": "https://github.com/bmeck/node-cookiejar/issues"
},
"dependencies": {},
"description": "simple persistent cookiejar system",
"devDependencies": {
"jshint": "^2.8.0"
},
"directories": {},
"dist": {
"shasum": "0abf356ad00d1c5a219d88d44518046dd026acfe",
"tarball": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.0.6.tgz"
},
"gitHead": "3c3d43c39dc3c6928354873d43f3ec2895e26937",
"homepage": "https://github.com/bmeck/node-cookiejar#readme",
"jshintConfig": {
"node": true
},
"license": "MIT",
"main": "cookiejar.js",
"maintainers": [
{
"name": "andyburke",
"email": "aburke@bitflood.org"
},
{
"name": "bradleymeck",
"email": "bradley.meck@gmail.com"
}
],
"name": "cookiejar",
"optionalDependencies": {},
"readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git+https://github.com/bmeck/node-cookiejar.git"
},
"scripts": {
"test": "node tests/test.js"
},
"version": "2.0.6"
}

57
node_modules/cookiejar/readme.md generated vendored Normal file
View File

@ -0,0 +1,57 @@
#CookieJar
Simple robust cookie library
##Exports
###CookieAccessInfo(domain,path,secure,script)
class to determine matching qualities of a cookie
#####Properties
* String domain - domain to match
* String path - path to match
* Boolean secure - access is secure (ssl generally)
* Boolean script - access is from a script
###Cookie(cookiestr_or_cookie, request_domain, request_path)
turns input into a Cookie (singleton if given a Cookie)
the `request_domain` argument is used to default the domain if it is not explicit in the cookie string
the `request_path` argument is used to set the path if it is not explicit in a cookie String.
explicit domains/paths will cascade, implied domains/paths must *exactly* match (see http://en.wikipedia.org/wiki/HTTP_cookie#Domain_and_Pat)
#####Properties
* String name - name of the cookie
* String value - string associated with the cookie
* String domain - domain to match (on a cookie a '.' at the start means a wildcard matching anything ending in the rest)
* Boolean explicit_domain - if the domain was explicitly set via the cookie string
* String path - base path to match (matches any path starting with this '/' is root)
* Boolean explicit_path - if the path was explicitly set via the cookie string
* Boolean noscript - if it should be kept from scripts
* Boolean secure - should it only be transmitted over secure means
* Number expiration_date - number of millis since 1970 at which this should be removed
#####Methods
* String toString() - the __set-cookie:__ string for this cookie
* String toValueString() - the __cookie:__ string for this cookie
* Cookie parse(cookiestr, request_domain, request_path) - parses the string onto this cookie or a new one if called directly
* Boolean matches(access_info) - returns true if the access_info allows retrieval of this cookie
* Boolean collidesWith(cookie) - returns true if the cookies cannot exist in the same space (domain and path match)
###CookieJar()
class to hold numerous cookies from multiple domains correctly
#####Methods
* Cookie setCookie(cookie, request_domain, request_path) - add a cookie to the jar
* Cookie[] setCookies(cookiestr_or_list, request_domain, request_path) - add a large number of cookies to the jar
* Cookie getCookie(cookie_name,access_info) - get a cookie with the name and access_info matching
* Cookie[] getCookies(access_info) - grab all cookies matching this access_info

82
node_modules/cookiejar/tests/test.js generated vendored Executable file
View File

@ -0,0 +1,82 @@
#!/usr/bin/env node
var Cookie=require("../cookiejar"),
CookieAccessInfo = Cookie.CookieAccessInfo,
CookieJar = Cookie.CookieJar,
Cookie = Cookie.Cookie;
var assert = require('assert');
// Test Cookie
var cookie = new Cookie("a=1;domain=.test.com;path=/");
assert.equal(cookie.name, "a");
assert.equal(cookie.value, "1");
assert.equal(cookie.domain, ".test.com");
assert.equal(cookie.path, "/");
assert.equal(cookie.secure, false);
assert.equal(cookie.expiration_date, Infinity);
assert.deepEqual(cookie, new Cookie("a=1;domain=.test.com;path=/"));
assert.ok(cookie.collidesWith(new Cookie("a=1;domain=.test.com;path=/")));
var cookie = new Cookie("a=1;path=/", ".test.com");
assert.equal(cookie.domain, ".test.com");
// Test CookieJar
var test_jar = CookieJar();
test_jar.setCookies(
"a=1;domain=.test.com;path=/"
+":b=2;domain=test.com;path=/"
+":c=3;domain=test.com;path=/;expires=January 1, 1970");
var cookies=test_jar.getCookies(CookieAccessInfo("test.com","/"))
assert.equal(cookies.length, 2, "Expires on setCookies fail\n" + cookies.toString());
assert.equal(cookies.toValueString(), 'a=1;b=2', "Cannot get value string of multiple cookies");
cookies=test_jar.getCookies(CookieAccessInfo("www.test.com","/"))
assert.equal(cookies.length, 2, "Wildcard domain fail\n" + cookies.toString());
test_jar.setCookies("b=2;domain=test.com;path=/;expires=January 1, 1970");
cookies=test_jar.getCookies(CookieAccessInfo("test.com","/"))
assert.equal(cookies.length, 1, "Delete cookie fail\n" + cookies.toString());
assert.equal(String(test_jar.getCookies(CookieAccessInfo("test.com","/"))), "a=1; domain=.test.com; path=/");
cookie=Cookie("a=1;domain=test.com;path=/;HttpOnly");
assert.ok(cookie.noscript, "HttpOnly flag parsing failed\n" + cookie.toString());
var test_jar = CookieJar();
test_jar.setCookies([
"a=1;domain=.test.com;path=/"
, "a=1;domain=.test.com;path=/"
, "a=2;domain=.test.com;path=/"
, "b=3;domain=.test.com;path=/"]);
var cookies=test_jar.getCookies(CookieAccessInfo("test.com","/"))
assert.equal(cookies.length, 2);
assert.equal(cookies[0].value, 2);
// Test Ignore Trailing Semicolons (Github Issue #6)
var cookie = new Cookie("a=1;domain=.test.com;path=/;;;;");
assert.equal(cookie.name, "a");
assert.equal(cookie.value, "1");
assert.equal(cookie.domain, ".test.com");
assert.equal(cookie.path, "/");
assert.deepEqual(cookie, new Cookie("a=1;domain=.test.com;path=/"));
// Test request_path and request_domain
test_jar.setCookie(new Cookie("sub=4;path=/", "test.com"));
var cookie = test_jar.getCookie("sub", CookieAccessInfo("sub.test.com", "/"));
assert.equal(cookie, undefined);
var cookie = test_jar.getCookie("sub", CookieAccessInfo("test.com", "/"));
assert.equal(cookie.name, "sub");
assert.equal(cookie.domain, "test.com");
test_jar.setCookie(new Cookie("sub=4;path=/accounts", "test.com", "/accounts"));
var cookie = test_jar.getCookie("sub", CookieAccessInfo("test.com", "/foo"));
assert.equal(cookie, undefined);
var cookie = test_jar.getCookie("sub", CookieAccessInfo("test.com", "/accounts"));
assert.equal(cookie.path, "/accounts");
test_jar.setCookie(new Cookie("sub=5;path=/", "test.com", "/accounts"));
var cookies = test_jar.getCookies(CookieAccessInfo("test.com"));
assert.equal(cookies.length, 3);

19
node_modules/core-util-is/LICENSE generated vendored Normal file
View File

@ -0,0 +1,19 @@
Copyright Node.js contributors. All rights reserved.
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.

3
node_modules/core-util-is/README.md generated vendored Normal file
View File

@ -0,0 +1,3 @@
# core-util-is
The `util.is*` functions introduced in Node v0.12.

604
node_modules/core-util-is/float.patch generated vendored Normal file
View File

@ -0,0 +1,604 @@
diff --git a/lib/util.js b/lib/util.js
index a03e874..9074e8e 100644
--- a/lib/util.js
+++ b/lib/util.js
@@ -19,430 +19,6 @@
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
-var formatRegExp = /%[sdj%]/g;
-exports.format = function(f) {
- if (!isString(f)) {
- var objects = [];
- for (var i = 0; i < arguments.length; i++) {
- objects.push(inspect(arguments[i]));
- }
- return objects.join(' ');
- }
-
- var i = 1;
- var args = arguments;
- var len = args.length;
- var str = String(f).replace(formatRegExp, function(x) {
- if (x === '%%') return '%';
- if (i >= len) return x;
- switch (x) {
- case '%s': return String(args[i++]);
- case '%d': return Number(args[i++]);
- case '%j':
- try {
- return JSON.stringify(args[i++]);
- } catch (_) {
- return '[Circular]';
- }
- default:
- return x;
- }
- });
- for (var x = args[i]; i < len; x = args[++i]) {
- if (isNull(x) || !isObject(x)) {
- str += ' ' + x;
- } else {
- str += ' ' + inspect(x);
- }
- }
- return str;
-};
-
-
-// Mark that a method should not be used.
-// Returns a modified function which warns once by default.
-// If --no-deprecation is set, then it is a no-op.
-exports.deprecate = function(fn, msg) {
- // Allow for deprecating things in the process of starting up.
- if (isUndefined(global.process)) {
- return function() {
- return exports.deprecate(fn, msg).apply(this, arguments);
- };
- }
-
- if (process.noDeprecation === true) {
- return fn;
- }
-
- var warned = false;
- function deprecated() {
- if (!warned) {
- if (process.throwDeprecation) {
- throw new Error(msg);
- } else if (process.traceDeprecation) {
- console.trace(msg);
- } else {
- console.error(msg);
- }
- warned = true;
- }
- return fn.apply(this, arguments);
- }
-
- return deprecated;
-};
-
-
-var debugs = {};
-var debugEnviron;
-exports.debuglog = function(set) {
- if (isUndefined(debugEnviron))
- debugEnviron = process.env.NODE_DEBUG || '';
- set = set.toUpperCase();
- if (!debugs[set]) {
- if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
- var pid = process.pid;
- debugs[set] = function() {
- var msg = exports.format.apply(exports, arguments);
- console.error('%s %d: %s', set, pid, msg);
- };
- } else {
- debugs[set] = function() {};
- }
- }
- return debugs[set];
-};
-
-
-/**
- * Echos the value of a value. Trys to print the value out
- * in the best way possible given the different types.
- *
- * @param {Object} obj The object to print out.
- * @param {Object} opts Optional options object that alters the output.
- */
-/* legacy: obj, showHidden, depth, colors*/
-function inspect(obj, opts) {
- // default options
- var ctx = {
- seen: [],
- stylize: stylizeNoColor
- };
- // legacy...
- if (arguments.length >= 3) ctx.depth = arguments[2];
- if (arguments.length >= 4) ctx.colors = arguments[3];
- if (isBoolean(opts)) {
- // legacy...
- ctx.showHidden = opts;
- } else if (opts) {
- // got an "options" object
- exports._extend(ctx, opts);
- }
- // set default options
- if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
- if (isUndefined(ctx.depth)) ctx.depth = 2;
- if (isUndefined(ctx.colors)) ctx.colors = false;
- if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
- if (ctx.colors) ctx.stylize = stylizeWithColor;
- return formatValue(ctx, obj, ctx.depth);
-}
-exports.inspect = inspect;
-
-
-// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
-inspect.colors = {
- 'bold' : [1, 22],
- 'italic' : [3, 23],
- 'underline' : [4, 24],
- 'inverse' : [7, 27],
- 'white' : [37, 39],
- 'grey' : [90, 39],
- 'black' : [30, 39],
- 'blue' : [34, 39],
- 'cyan' : [36, 39],
- 'green' : [32, 39],
- 'magenta' : [35, 39],
- 'red' : [31, 39],
- 'yellow' : [33, 39]
-};
-
-// Don't use 'blue' not visible on cmd.exe
-inspect.styles = {
- 'special': 'cyan',
- 'number': 'yellow',
- 'boolean': 'yellow',
- 'undefined': 'grey',
- 'null': 'bold',
- 'string': 'green',
- 'date': 'magenta',
- // "name": intentionally not styling
- 'regexp': 'red'
-};
-
-
-function stylizeWithColor(str, styleType) {
- var style = inspect.styles[styleType];
-
- if (style) {
- return '\u001b[' + inspect.colors[style][0] + 'm' + str +
- '\u001b[' + inspect.colors[style][1] + 'm';
- } else {
- return str;
- }
-}
-
-
-function stylizeNoColor(str, styleType) {
- return str;
-}
-
-
-function arrayToHash(array) {
- var hash = {};
-
- array.forEach(function(val, idx) {
- hash[val] = true;
- });
-
- return hash;
-}
-
-
-function formatValue(ctx, value, recurseTimes) {
- // Provide a hook for user-specified inspect functions.
- // Check that value is an object with an inspect function on it
- if (ctx.customInspect &&
- value &&
- isFunction(value.inspect) &&
- // Filter out the util module, it's inspect function is special
- value.inspect !== exports.inspect &&
- // Also filter out any prototype objects using the circular check.
- !(value.constructor && value.constructor.prototype === value)) {
- var ret = value.inspect(recurseTimes, ctx);
- if (!isString(ret)) {
- ret = formatValue(ctx, ret, recurseTimes);
- }
- return ret;
- }
-
- // Primitive types cannot have properties
- var primitive = formatPrimitive(ctx, value);
- if (primitive) {
- return primitive;
- }
-
- // Look up the keys of the object.
- var keys = Object.keys(value);
- var visibleKeys = arrayToHash(keys);
-
- if (ctx.showHidden) {
- keys = Object.getOwnPropertyNames(value);
- }
-
- // Some type of object without properties can be shortcutted.
- if (keys.length === 0) {
- if (isFunction(value)) {
- var name = value.name ? ': ' + value.name : '';
- return ctx.stylize('[Function' + name + ']', 'special');
- }
- if (isRegExp(value)) {
- return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
- }
- if (isDate(value)) {
- return ctx.stylize(Date.prototype.toString.call(value), 'date');
- }
- if (isError(value)) {
- return formatError(value);
- }
- }
-
- var base = '', array = false, braces = ['{', '}'];
-
- // Make Array say that they are Array
- if (isArray(value)) {
- array = true;
- braces = ['[', ']'];
- }
-
- // Make functions say that they are functions
- if (isFunction(value)) {
- var n = value.name ? ': ' + value.name : '';
- base = ' [Function' + n + ']';
- }
-
- // Make RegExps say that they are RegExps
- if (isRegExp(value)) {
- base = ' ' + RegExp.prototype.toString.call(value);
- }
-
- // Make dates with properties first say the date
- if (isDate(value)) {
- base = ' ' + Date.prototype.toUTCString.call(value);
- }
-
- // Make error with message first say the error
- if (isError(value)) {
- base = ' ' + formatError(value);
- }
-
- if (keys.length === 0 && (!array || value.length == 0)) {
- return braces[0] + base + braces[1];
- }
-
- if (recurseTimes < 0) {
- if (isRegExp(value)) {
- return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
- } else {
- return ctx.stylize('[Object]', 'special');
- }
- }
-
- ctx.seen.push(value);
-
- var output;
- if (array) {
- output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
- } else {
- output = keys.map(function(key) {
- return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
- });
- }
-
- ctx.seen.pop();
-
- return reduceToSingleString(output, base, braces);
-}
-
-
-function formatPrimitive(ctx, value) {
- if (isUndefined(value))
- return ctx.stylize('undefined', 'undefined');
- if (isString(value)) {
- var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
- .replace(/'/g, "\\'")
- .replace(/\\"/g, '"') + '\'';
- return ctx.stylize(simple, 'string');
- }
- if (isNumber(value)) {
- // Format -0 as '-0'. Strict equality won't distinguish 0 from -0,
- // so instead we use the fact that 1 / -0 < 0 whereas 1 / 0 > 0 .
- if (value === 0 && 1 / value < 0)
- return ctx.stylize('-0', 'number');
- return ctx.stylize('' + value, 'number');
- }
- if (isBoolean(value))
- return ctx.stylize('' + value, 'boolean');
- // For some reason typeof null is "object", so special case here.
- if (isNull(value))
- return ctx.stylize('null', 'null');
-}
-
-
-function formatError(value) {
- return '[' + Error.prototype.toString.call(value) + ']';
-}
-
-
-function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
- var output = [];
- for (var i = 0, l = value.length; i < l; ++i) {
- if (hasOwnProperty(value, String(i))) {
- output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
- String(i), true));
- } else {
- output.push('');
- }
- }
- keys.forEach(function(key) {
- if (!key.match(/^\d+$/)) {
- output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
- key, true));
- }
- });
- return output;
-}
-
-
-function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
- var name, str, desc;
- desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
- if (desc.get) {
- if (desc.set) {
- str = ctx.stylize('[Getter/Setter]', 'special');
- } else {
- str = ctx.stylize('[Getter]', 'special');
- }
- } else {
- if (desc.set) {
- str = ctx.stylize('[Setter]', 'special');
- }
- }
- if (!hasOwnProperty(visibleKeys, key)) {
- name = '[' + key + ']';
- }
- if (!str) {
- if (ctx.seen.indexOf(desc.value) < 0) {
- if (isNull(recurseTimes)) {
- str = formatValue(ctx, desc.value, null);
- } else {
- str = formatValue(ctx, desc.value, recurseTimes - 1);
- }
- if (str.indexOf('\n') > -1) {
- if (array) {
- str = str.split('\n').map(function(line) {
- return ' ' + line;
- }).join('\n').substr(2);
- } else {
- str = '\n' + str.split('\n').map(function(line) {
- return ' ' + line;
- }).join('\n');
- }
- }
- } else {
- str = ctx.stylize('[Circular]', 'special');
- }
- }
- if (isUndefined(name)) {
- if (array && key.match(/^\d+$/)) {
- return str;
- }
- name = JSON.stringify('' + key);
- if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) {
- name = name.substr(1, name.length - 2);
- name = ctx.stylize(name, 'name');
- } else {
- name = name.replace(/'/g, "\\'")
- .replace(/\\"/g, '"')
- .replace(/(^"|"$)/g, "'");
- name = ctx.stylize(name, 'string');
- }
- }
-
- return name + ': ' + str;
-}
-
-
-function reduceToSingleString(output, base, braces) {
- var numLinesEst = 0;
- var length = output.reduce(function(prev, cur) {
- numLinesEst++;
- if (cur.indexOf('\n') >= 0) numLinesEst++;
- return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1;
- }, 0);
-
- if (length > 60) {
- return braces[0] +
- (base === '' ? '' : base + '\n ') +
- ' ' +
- output.join(',\n ') +
- ' ' +
- braces[1];
- }
-
- return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];
-}
-
-
// NOTE: These type checking functions intentionally don't use `instanceof`
// because it is fragile and can be easily faked with `Object.create()`.
function isArray(ar) {
@@ -522,166 +98,10 @@ function isPrimitive(arg) {
exports.isPrimitive = isPrimitive;
function isBuffer(arg) {
- return arg instanceof Buffer;
+ return Buffer.isBuffer(arg);
}
exports.isBuffer = isBuffer;
function objectToString(o) {
return Object.prototype.toString.call(o);
-}
-
-
-function pad(n) {
- return n < 10 ? '0' + n.toString(10) : n.toString(10);
-}
-
-
-var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
- 'Oct', 'Nov', 'Dec'];
-
-// 26 Feb 16:19:34
-function timestamp() {
- var d = new Date();
- var time = [pad(d.getHours()),
- pad(d.getMinutes()),
- pad(d.getSeconds())].join(':');
- return [d.getDate(), months[d.getMonth()], time].join(' ');
-}
-
-
-// log is just a thin wrapper to console.log that prepends a timestamp
-exports.log = function() {
- console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
-};
-
-
-/**
- * Inherit the prototype methods from one constructor into another.
- *
- * The Function.prototype.inherits from lang.js rewritten as a standalone
- * function (not on Function.prototype). NOTE: If this file is to be loaded
- * during bootstrapping this function needs to be rewritten using some native
- * functions as prototype setup using normal JavaScript does not work as
- * expected during bootstrapping (see mirror.js in r114903).
- *
- * @param {function} ctor Constructor function which needs to inherit the
- * prototype.
- * @param {function} superCtor Constructor function to inherit prototype from.
- */
-exports.inherits = function(ctor, superCtor) {
- ctor.super_ = superCtor;
- ctor.prototype = Object.create(superCtor.prototype, {
- constructor: {
- value: ctor,
- enumerable: false,
- writable: true,
- configurable: true
- }
- });
-};
-
-exports._extend = function(origin, add) {
- // Don't do anything if add isn't an object
- if (!add || !isObject(add)) return origin;
-
- var keys = Object.keys(add);
- var i = keys.length;
- while (i--) {
- origin[keys[i]] = add[keys[i]];
- }
- return origin;
-};
-
-function hasOwnProperty(obj, prop) {
- return Object.prototype.hasOwnProperty.call(obj, prop);
-}
-
-
-// Deprecated old stuff.
-
-exports.p = exports.deprecate(function() {
- for (var i = 0, len = arguments.length; i < len; ++i) {
- console.error(exports.inspect(arguments[i]));
- }
-}, 'util.p: Use console.error() instead');
-
-
-exports.exec = exports.deprecate(function() {
- return require('child_process').exec.apply(this, arguments);
-}, 'util.exec is now called `child_process.exec`.');
-
-
-exports.print = exports.deprecate(function() {
- for (var i = 0, len = arguments.length; i < len; ++i) {
- process.stdout.write(String(arguments[i]));
- }
-}, 'util.print: Use console.log instead');
-
-
-exports.puts = exports.deprecate(function() {
- for (var i = 0, len = arguments.length; i < len; ++i) {
- process.stdout.write(arguments[i] + '\n');
- }
-}, 'util.puts: Use console.log instead');
-
-
-exports.debug = exports.deprecate(function(x) {
- process.stderr.write('DEBUG: ' + x + '\n');
-}, 'util.debug: Use console.error instead');
-
-
-exports.error = exports.deprecate(function(x) {
- for (var i = 0, len = arguments.length; i < len; ++i) {
- process.stderr.write(arguments[i] + '\n');
- }
-}, 'util.error: Use console.error instead');
-
-
-exports.pump = exports.deprecate(function(readStream, writeStream, callback) {
- var callbackCalled = false;
-
- function call(a, b, c) {
- if (callback && !callbackCalled) {
- callback(a, b, c);
- callbackCalled = true;
- }
- }
-
- readStream.addListener('data', function(chunk) {
- if (writeStream.write(chunk) === false) readStream.pause();
- });
-
- writeStream.addListener('drain', function() {
- readStream.resume();
- });
-
- readStream.addListener('end', function() {
- writeStream.end();
- });
-
- readStream.addListener('close', function() {
- call();
- });
-
- readStream.addListener('error', function(err) {
- writeStream.end();
- call(err);
- });
-
- writeStream.addListener('error', function(err) {
- readStream.destroy();
- call(err);
- });
-}, 'util.pump(): Use readableStream.pipe() instead');
-
-
-var uv;
-exports._errnoException = function(err, syscall) {
- if (isUndefined(uv)) uv = process.binding('uv');
- var errname = uv.errname(err);
- var e = new Error(syscall + ' ' + errname);
- e.code = errname;
- e.errno = errname;
- e.syscall = syscall;
- return e;
-};
+}

107
node_modules/core-util-is/lib/util.js generated vendored Normal file
View File

@ -0,0 +1,107 @@
// Copyright Joyent, Inc. and other Node contributors.
//
// 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.
// NOTE: These type checking functions intentionally don't use `instanceof`
// because it is fragile and can be easily faked with `Object.create()`.
function isArray(arg) {
if (Array.isArray) {
return Array.isArray(arg);
}
return objectToString(arg) === '[object Array]';
}
exports.isArray = isArray;
function isBoolean(arg) {
return typeof arg === 'boolean';
}
exports.isBoolean = isBoolean;
function isNull(arg) {
return arg === null;
}
exports.isNull = isNull;
function isNullOrUndefined(arg) {
return arg == null;
}
exports.isNullOrUndefined = isNullOrUndefined;
function isNumber(arg) {
return typeof arg === 'number';
}
exports.isNumber = isNumber;
function isString(arg) {
return typeof arg === 'string';
}
exports.isString = isString;
function isSymbol(arg) {
return typeof arg === 'symbol';
}
exports.isSymbol = isSymbol;
function isUndefined(arg) {
return arg === void 0;
}
exports.isUndefined = isUndefined;
function isRegExp(re) {
return objectToString(re) === '[object RegExp]';
}
exports.isRegExp = isRegExp;
function isObject(arg) {
return typeof arg === 'object' && arg !== null;
}
exports.isObject = isObject;
function isDate(d) {
return objectToString(d) === '[object Date]';
}
exports.isDate = isDate;
function isError(e) {
return (objectToString(e) === '[object Error]' || e instanceof Error);
}
exports.isError = isError;
function isFunction(arg) {
return typeof arg === 'function';
}
exports.isFunction = isFunction;
function isPrimitive(arg) {
return arg === null ||
typeof arg === 'boolean' ||
typeof arg === 'number' ||
typeof arg === 'string' ||
typeof arg === 'symbol' || // ES6 symbol
typeof arg === 'undefined';
}
exports.isPrimitive = isPrimitive;
exports.isBuffer = Buffer.isBuffer;
function objectToString(o) {
return Object.prototype.toString.call(o);
}

94
node_modules/core-util-is/package.json generated vendored Normal file
View File

@ -0,0 +1,94 @@
{
"_args": [
[
{
"raw": "core-util-is@~1.0.0",
"scope": null,
"escapedName": "core-util-is",
"name": "core-util-is",
"rawSpec": "~1.0.0",
"spec": ">=1.0.0 <1.1.0",
"type": "range"
},
"/home/burchettm/statsbot/node_modules/readable-stream"
]
],
"_from": "core-util-is@>=1.0.0 <1.1.0",
"_id": "core-util-is@1.0.2",
"_inCache": true,
"_location": "/core-util-is",
"_nodeVersion": "4.0.0",
"_npmUser": {
"name": "isaacs",
"email": "i@izs.me"
},
"_npmVersion": "3.3.2",
"_phantomChildren": {},
"_requested": {
"raw": "core-util-is@~1.0.0",
"scope": null,
"escapedName": "core-util-is",
"name": "core-util-is",
"rawSpec": "~1.0.0",
"spec": ">=1.0.0 <1.1.0",
"type": "range"
},
"_requiredBy": [
"/readable-stream"
],
"_resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
"_shasum": "b5fd54220aa2bc5ab57aab7140c940754503c1a7",
"_shrinkwrap": null,
"_spec": "core-util-is@~1.0.0",
"_where": "/home/burchettm/statsbot/node_modules/readable-stream",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me",
"url": "http://blog.izs.me/"
},
"bugs": {
"url": "https://github.com/isaacs/core-util-is/issues"
},
"dependencies": {},
"description": "The `util.is*` functions introduced in Node v0.12.",
"devDependencies": {
"tap": "^2.3.0"
},
"directories": {},
"dist": {
"shasum": "b5fd54220aa2bc5ab57aab7140c940754503c1a7",
"tarball": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"
},
"gitHead": "a177da234df5638b363ddc15fa324619a38577c8",
"homepage": "https://github.com/isaacs/core-util-is#readme",
"keywords": [
"util",
"isBuffer",
"isArray",
"isNumber",
"isString",
"isRegExp",
"isThis",
"isThat",
"polyfill"
],
"license": "MIT",
"main": "lib/util.js",
"maintainers": [
{
"name": "isaacs",
"email": "i@izs.me"
}
],
"name": "core-util-is",
"optionalDependencies": {},
"readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git://github.com/isaacs/core-util-is.git"
},
"scripts": {
"test": "tap test.js"
},
"version": "1.0.2"
}

68
node_modules/core-util-is/test.js generated vendored Normal file
View File

@ -0,0 +1,68 @@
var assert = require('tap');
var t = require('./lib/util');
assert.equal(t.isArray([]), true);
assert.equal(t.isArray({}), false);
assert.equal(t.isBoolean(null), false);
assert.equal(t.isBoolean(true), true);
assert.equal(t.isBoolean(false), true);
assert.equal(t.isNull(null), true);
assert.equal(t.isNull(undefined), false);
assert.equal(t.isNull(false), false);
assert.equal(t.isNull(), false);
assert.equal(t.isNullOrUndefined(null), true);
assert.equal(t.isNullOrUndefined(undefined), true);
assert.equal(t.isNullOrUndefined(false), false);
assert.equal(t.isNullOrUndefined(), true);
assert.equal(t.isNumber(null), false);
assert.equal(t.isNumber('1'), false);
assert.equal(t.isNumber(1), true);
assert.equal(t.isString(null), false);
assert.equal(t.isString('1'), true);
assert.equal(t.isString(1), false);
assert.equal(t.isSymbol(null), false);
assert.equal(t.isSymbol('1'), false);
assert.equal(t.isSymbol(1), false);
assert.equal(t.isSymbol(Symbol()), true);
assert.equal(t.isUndefined(null), false);
assert.equal(t.isUndefined(undefined), true);
assert.equal(t.isUndefined(false), false);
assert.equal(t.isUndefined(), true);
assert.equal(t.isRegExp(null), false);
assert.equal(t.isRegExp('1'), false);
assert.equal(t.isRegExp(new RegExp()), true);
assert.equal(t.isObject({}), true);
assert.equal(t.isObject([]), true);
assert.equal(t.isObject(new RegExp()), true);
assert.equal(t.isObject(new Date()), true);
assert.equal(t.isDate(null), false);
assert.equal(t.isDate('1'), false);
assert.equal(t.isDate(new Date()), true);
assert.equal(t.isError(null), false);
assert.equal(t.isError({ err: true }), false);
assert.equal(t.isError(new Error()), true);
assert.equal(t.isFunction(null), false);
assert.equal(t.isFunction({ }), false);
assert.equal(t.isFunction(function() {}), true);
assert.equal(t.isPrimitive(null), true);
assert.equal(t.isPrimitive(''), true);
assert.equal(t.isPrimitive(0), true);
assert.equal(t.isPrimitive(new Date()), false);
assert.equal(t.isBuffer(null), false);
assert.equal(t.isBuffer({}), false);
assert.equal(t.isBuffer(new Buffer(0)), true);

27
node_modules/currently-unhandled/browser.js generated vendored Normal file
View File

@ -0,0 +1,27 @@
'use strict';
var core = require('./core');
function unwrapEvent(event) {
if (event && event.detail && event.detail.promise) {
return event.detail;
}
return event;
}
module.exports = function (w) {
w = w || window;
var c = core();
w.addEventListener('unhandledrejection', function (event) {
event = unwrapEvent(event);
c.onUnhandledRejection(event.reason, event.promise);
});
w.addEventListener('rejectionhandled', function (event) {
event = unwrapEvent(event);
c.onRejectionHandled(event.promise);
});
return c.currentlyUnhandled;
};

33
node_modules/currently-unhandled/core.js generated vendored Normal file
View File

@ -0,0 +1,33 @@
'use strict';
var arrayFindIndex = require('array-find-index');
module.exports = function () {
var unhandledRejections = [];
function onUnhandledRejection(reason, promise) {
unhandledRejections.push({reason: reason, promise: promise});
}
function onRejectionHandled(promise) {
var index = arrayFindIndex(unhandledRejections, function (x) {
return x.promise === promise;
});
unhandledRejections.splice(index, 1);
}
function currentlyUnhandled() {
return unhandledRejections.map(function (entry) {
return {
reason: entry.reason,
promise: entry.promise
};
});
}
return {
onUnhandledRejection: onUnhandledRejection,
onRejectionHandled: onRejectionHandled,
currentlyUnhandled: currentlyUnhandled
};
};

Some files were not shown because too many files have changed in this diff Show More