diff --git a/.env.example b/.env.example
index b3d76d3..6fce2fe 100644
--- a/.env.example
+++ b/.env.example
@@ -1,5 +1,6 @@
TOKEN =
MONGO =
+mongo =
CLIENT_SECRET =
CLIENT_ID =
PORT =
diff --git a/.eslintrc.js b/.eslintrc.js
new file mode 100644
index 0000000..8f22342
--- /dev/null
+++ b/.eslintrc.js
@@ -0,0 +1,15 @@
+module.exports = {
+ env: {
+ es6: true,
+ node: true,
+ },
+ extends: "eslint:recommended",
+ parserOptions: {
+ ecmaVersion: 2020,
+ sourceType: "module",
+ },
+ rules: {
+ indent: ["error", 2],
+ semi: ["error", "always"],
+ },
+};
diff --git a/.gitignore b/.gitignore
index 8783ab9..a651d06 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,14 +1,2 @@
node_modules/
-/.env
-commands/CODM/
-/dashboard/
-/util/Data/aliases.json
-/util/Data/attachments.json
-/util/Data/builds.json
-/util/Data/data.json
-/util/Data/perk.json
-/util/Data/skins.json
-/util/Data/weapons.json
-/util/functions/common.js
-/util/bash.sh
-/bot.js
\ No newline at end of file
+/.env
\ No newline at end of file
diff --git a/.jshintrc b/.jshintrc
new file mode 100644
index 0000000..1370e1e
--- /dev/null
+++ b/.jshintrc
@@ -0,0 +1,3 @@
+{
+ "esversion": 10
+}
diff --git a/README.md b/README.md
index 8fdb23c..a0f66f6 100644
--- a/README.md
+++ b/README.md
@@ -1,38 +1,41 @@
# cath.exe
+
cath.exe is a CODM-theme based Discord Bot with many categories of commands like Moderation, Music and Economy. It is an open source project based on Project Lighthouse by path.exe, written in node.js(JavaScript), mainly using discord.js and mongoose module.
If you like this bot, feel free to **star** and **fork** the repository!
Click [here](https://discord.com/oauth2/authorize?client_id=800966959268364288&permissions=4231314550&scope=bot%20applications.commands) to invite cath.exe
-[![Discord](https://img.shields.io/discord/718762019586572341?color=46828d&label=Support&style=for-the-badge)](https://discord.gg/SbQHChmGcp)
+![Support Server](https://img.shields.io/discord/718762019586572341?color=46828d&label=Support&style=for-the-badge)
![Repo Stars](https://img.shields.io/github/stars/night0721/cath.exe?color=46828d&style=for-the-badge)
+
# How to deploy the bot?
1. Clone the repository
+
```cmd
git clone https://github.com/night0721/cath.exe
(or)
gh repo clone night0721/cath.exe
```
-or
-[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/night0721/cath.exe)
-[![repl.it](https://repl.it/badge/github/night0721/cath.exe)](https://repl.it/github/night0721/cath.exe)
+ro
-2.Create a .env file from .env.example
-3. Create an application from [Discord Developer Portal](https://discord.com/developers/applications), then copy the
- - Bot Token
- - Application ID(Client ID)
- - Client Secret
-
-4. Create a MongoDB Connection URI from [here](https://www.mongodb.com)
-5. Create 5 Webhooks in **Your Discord Server**:
-- Server Log(Log new Server Added/Premium Server)
-- Error Log(Log Unhandled Rejection Error)
+2.Create a .env file from .env.example
3. Create an application from [Discord Developer Portal](https://discord.com/developers/applications), then copy the
+
+- Bot Token
+- Application ID(Client ID)
+- Client Secret
+
+4. Create a MongoDB Connection URI from [here](https://www.mongodb.com)
+5. Create 5 Webhooks in**Your Discord Server**:
+
+- Server Log(Log new Server Added/Premium Server)
+- Error Log(Log Unhandled Rejection Error)
- Ready Log(Log when bot online)
- Command Log(Log command usage)
-- DM Log(Log when someone send DM to Bot)
-
+- DM Log(Log when someone send DM to Bot)
+
6. Paste the IDs, Tokens and the Webhooks into the `.env` respectively
7. After you have done the above steps, run the commands in your **Command Prompt** or **PowerShell**
+
```cmd
npm install
node index.js
diff --git a/api/app.js b/api/app.js
deleted file mode 100644
index ee14c5a..0000000
--- a/api/app.js
+++ /dev/null
@@ -1,20 +0,0 @@
-const express = require("express");
-const app = express();
-const port = process.env.PORT || 3001;
-const routes = require("./routes/routes");
-const client = require("../bot");
-client.on("ready", async () => {
- var users = client.guilds.cache.reduce((a, b) => a + b.memberCount, 0);
- var guilds = client.guilds.cache.size;
- const caches = {
- users: users,
- guilds: guilds,
- };
- app.use("/api", routes);
- app.use("/client", async (req, res) => {
- res.status(200).send(caches);
- });
- app.listen(port, () => {
- console.log(`Listen on PORT ${port}`);
- });
-});
diff --git a/api/routes/commands.js b/api/routes/commands.js
deleted file mode 100644
index 1946d9d..0000000
--- a/api/routes/commands.js
+++ /dev/null
@@ -1,8 +0,0 @@
-const { cmds } = require("../../util/dist/cmds");
-const commands = cmds();
-const router = require("express").Router();
-
-router.get("/", async (req, res) => {
- res.status(200).send(commands);
-});
-module.exports = router;
diff --git a/api/routes/routes.js b/api/routes/routes.js
deleted file mode 100644
index 3d2ff71..0000000
--- a/api/routes/routes.js
+++ /dev/null
@@ -1,4 +0,0 @@
-const router = require("express").Router();
-const cmds = require("./commands");
-router.use("/commands", cmds);
-module.exports = router;
diff --git a/app.js b/app.js
new file mode 100644
index 0000000..c5dd813
--- /dev/null
+++ b/app.js
@@ -0,0 +1,14 @@
+const express = require("express");
+const app = express();
+const route1 = require("./api/api");
+const cors = require("cors");
+const port = process.env.PORT || 3001;
+app.use(cors());
+app.use(express.json());
+app.use("/api", route1);
+app.use("/", async (req, res) => {
+ res.send("");
+});
+app.listen(port, () => {
+ console.log(`Listen on PORT ${port}`);
+});
diff --git a/bot.js b/bot.js
new file mode 100644
index 0000000..49154c6
--- /dev/null
+++ b/bot.js
@@ -0,0 +1,109 @@
+const {
+ Client,
+ Collection,
+ WebhookClient,
+ MessageEmbed,
+} = require("discord.js");
+const { GiveawaysManager } = require("discord-giveaways");
+const fs = require("fs");
+const config = require("./config.json");
+require("dotenv").config();
+const client = new Client({
+ allowedMentions: { parse: ["users", "roles"], repliedUser: true },
+ restTimeOffset: 0,
+ partials: ["MESSAGE", "CHANNEL", "REACTION", "GUILD_MEMBER"],
+ intents: ["GUILDS", "GUILD_MESSAGES", "GUILD_MEMBERS", "GUILD_PRESENCES"],
+});
+module.exports = client;
+client.color = config.color;
+client.author = "Cath Team";
+client.invite = "https://discord.gg/SbQHChmGcp";
+client.web = config.URL;
+require("./util/dist/cmds").cmds();
+require("./app");
+require("./inlinereply");
+require("./util/functions/economy")(client);
+require("./util/dist/manager")(client);
+client.CMDLog = new WebhookClient(
+ process.env.CMDLogID,
+ process.env.CMDLogToken
+);
+client.ReadyLog = new WebhookClient(
+ process.env.ReadyLogID,
+ process.env.ReadyLogToken
+);
+client.ServerLog = new WebhookClient(
+ process.env.ServerLogID,
+ process.env.ServerLogToken
+);
+client.ErrorLog = new WebhookClient(
+ process.env.ErrorLogID,
+ process.env.ErrorLogToken
+);
+process.on("unhandledRejection", async err => {
+ if (client.user) {
+ if (client.user.id === client.user.id) {
+ const embed = new MessageEmbed()
+ .setTitle("UnhandledRejection Error")
+ .setDescription(`\`\`\`ini\n${err.stack}\`\`\``)
+ .setTimestamp()
+ .setColor(client.color)
+ .setFooter(client.user.username);
+ client.ErrorLog.send(embed);
+ }
+ }
+ return console.log(err);
+});
+client.SuggestionLog = config.Suggestion;
+client.ReportLog = config.Report;
+client.DMLog = config.DM;
+client.commands = new Collection();
+client.aliases = new Collection();
+client.events = new Collection();
+client.snipes = [];
+client.esnipes = new Collection();
+client.hide = new Collection();
+client.queue = new Map();
+client.Timers = new Map();
+client.cat = config.ca;
+client.function = require("./util/functions/function");
+client.data = require("./util/functions/mongoose");
+client.err = require("./util/dist/err");
+client.data
+ .connect(process.env.MONGO)
+ .then(() => console.log("Connected to MongoDB!"))
+ .catch(e => console.log(e));
+client.owners = [
+ "452076196419600394",
+ "749692825402212494",
+ "766645910087139338",
+ "755476040029306952",
+ "534027706325532694",
+ "381442059111759883",
+ "556808365574193194",
+];
+client.currency = "<:cp:840231933933387797>";
+client.path = [
+ "614423108388126731",
+ "767173194943168542",
+ "783633408738721834",
+ "718762019586572341",
+ "784052348561522730",
+ "840225563193114624",
+ "800396461229080619",
+];
+client.giveaways = new GiveawaysManager(client, {
+ storage: "./util/Data/giveaways.json",
+ updateCountdownEvery: 1000,
+ default: {
+ botsCanWin: false,
+ embedColor: client.color,
+ reaction: "🎉",
+ },
+});
+client.categories = fs.readdirSync("./commands/");
+client.paths = fs.readdirSync("./cat/");
+["command"].forEach(handler => {
+ require(`./util/command-handler`)(client);
+});
+client.login(process.env.TOKEN);
diff --git a/commands/Config/set.js b/commands/Config/set.js
index 44658a3..febc86d 100644
--- a/commands/Config/set.js
+++ b/commands/Config/set.js
@@ -37,6 +37,17 @@ module.exports = {
if (!channel) return client.err(message, "Config", "set", 28);
await client.data.setWelcome(message.guild.id, channel.id);
message.channel.send(`Saved ${channel} as the welcome channel.`);
+ } else if (args[0].toLowerCase() === "level") {
+ if (args[1].toLowerCase() === "on" || args[1].toLowerCase() === "true") {
+ await client.data.setGLevel(message.guild.id, "true");
+ message.channel.send(`Levelling is enabled in this server now.`);
+ } else if (
+ args[1].toLowerCase() === "off" ||
+ args[1].toLowerCase() === "false"
+ ) {
+ await client.data.setGLevel(message.guild.id, "false");
+ message.channel.send(`Levelling is disabled in this server now.`);
+ } else return client.err(message, "Config", "set", 45);
} else {
return client.err(message, "Config", "set", 45);
}
diff --git a/commands/Economy/bal.js b/commands/Economy/bal.js
index 3e5855e..23b7542 100644
--- a/commands/Economy/bal.js
+++ b/commands/Economy/bal.js
@@ -16,7 +16,7 @@ module.exports = {
r => r.displayName.toLowerCase() === args.join(" ").toLocaleLowerCase()
) ||
message.member;
- const bal = await client.data.bal(user.id);
+ const bal = await client.bal(user.id);
let embed = new MessageEmbed()
.addField(`${client.currency} Balance`, `**${bal}**`)
.setColor(client.color)
diff --git a/commands/Economy/bet.js b/commands/Economy/bet.js
index cfe3df6..36b31ad 100644
--- a/commands/Economy/bet.js
+++ b/commands/Economy/bet.js
@@ -15,7 +15,7 @@ module.exports = {
return client.err(message, "Economy", "bet", 7);
}
const amt = parseInt(args[0]);
- if ((await client.data.bal(message.author.id)) < amt) {
+ if ((await client.bal(message.author.id)) < amt) {
return client.err(message, "Economy", "bet", 20);
}
if (amt > max) {
@@ -23,26 +23,27 @@ module.exports = {
}
if (client.function.random() === true) {
const winamt = amt * 1;
- await client.data.add(message.author.id, winamt);
+ await client.add(message.author.id, winamt, message);
+ await client.ADDBWin(message.author.id);
const abc = new MessageEmbed()
.setColor("GREEN")
.setTimestamp()
.setTitle(`${message.author.username} wins a gamble game`)
.setDescription(
`You win\n**${winamt}**${client.currency}\nYou now have **${
- parseInt(await client.data.bal(message.author.id)) - amt
+ parseInt(await client.bal(message.author.id)) - amt
}**${client.currency}`
);
message.inlineReply(abc);
} else {
- await client.data.rmv(message.author.id, amt);
+ await client.rmv(message.author.id, amt);
const cba = new MessageEmbed()
.setColor("RED")
.setTimestamp()
.setTitle(`${message.author.username} loses a gamble game`)
.setDescription(
- `You lost\n**${winamt}**${client.currency}\nYou now have **${
- parseInt(await client.data.bal(message.author.id)) - amt
+ `You lost\n**${amt}**${client.currency}\nYou now have **${
+ parseInt(await client.bal(message.author.id)) - amt
}**${client.currency}`
);
message.inlineReply(cba);
diff --git a/commands/Economy/blackjack.js b/commands/Economy/blackjack.js
index cc5d4e5..123ee1d 100644
--- a/commands/Economy/blackjack.js
+++ b/commands/Economy/blackjack.js
@@ -5,14 +5,14 @@ module.exports = {
usage: "(Number)",
description: "Play a blackjack game to win money",
category: "Economy",
- timeout: 10000,
+ //timeout: 10000,
run: async (client, message, args) => {
const money = parseInt(args[0]);
const author = message.author;
if (isNaN(money) || !money) {
return client.err(message, "Economy", "blackjack", 101);
}
- if ((await client.data.bal(author.id)) < bet) {
+ if ((await client.bal(author.id)) < bet) {
client.err(message, "Economy", "blackjack", 20);
}
var numCardsPulled = 0;
@@ -87,11 +87,11 @@ module.exports = {
deck.shuffle();
async function bet(outcome) {
if (outcome === "win") {
- client.data.add(author.id, money);
- //client.ADDbjWin(message.author.id);
+ await client.add(author.id, money, message);
+ await client.ADDBJWin(message.author.id);
}
if (outcome === "lose") {
- client.data.rmv(author.id, money);
+ await client.rmv(author.id, money);
}
}
@@ -135,12 +135,11 @@ module.exports = {
}
const gambleEmbed = new Discord.MessageEmbed()
- .setColor(cl)
+ .setColor(cl || client.color)
.setTitle(message.author.username + `'s Blackjack game`)
.addField("You", cardsMsg, true)
.addField("cath.exe", dealerMsg, true)
.addField(f, msg);
-
message.channel.send(gambleEmbed);
}
@@ -213,11 +212,7 @@ module.exports = {
dealer.score < 21
) {
gameOver = true;
- await endMsg(
- `Tie! UwU`,
- `cath.exe had ${dealer.score.toString()}`,
- `RED`
- );
+ await endMsg(`Tie!`, `cath.exe had ${dealer.score.toString()}`, `RED`);
}
}
@@ -254,7 +249,11 @@ module.exports = {
async function loop() {
if (gameOver) return;
- endMsg("To hit type `h`, for stand type `s`", `GoodLuck ;)`, `GRAY`);
+ endMsg(
+ "To hit type `h`, for stand type `s`",
+ `GoodLuck ;)`,
+ client.color
+ );
let filter = m => m.author.id === message.author.id;
message.channel
@@ -265,11 +264,17 @@ module.exports = {
})
.then(message => {
message = message.first();
- if (message.content === "h" || message.content === "hit") {
+ if (
+ message.content.toLowerCase() === "h" ||
+ message.content.toLowerCase() === "hit"
+ ) {
hit();
loop();
return;
- } else if (message.content === "s" || message.content === "stand") {
+ } else if (
+ message.content.toLowerCase() === "s" ||
+ message.content.toLowerCase() === "stand"
+ ) {
stand();
loop();
return;
diff --git a/commands/Economy/buy.js b/commands/Economy/buy.js
index fec9b11..a2942e3 100644
--- a/commands/Economy/buy.js
+++ b/commands/Economy/buy.js
@@ -24,7 +24,7 @@ module.exports = {
const itemPrice = items.find(
item => item.alias.toLowerCase() === itemToBuy
).price;
- if ((await client.data.bal(message.author.id)) < itemPrice)
+ if ((await client.bal(message.author.id)) < itemPrice)
return client.err(message, "Economy", "buy", 20);
const params = {
User: message.author.id,
@@ -60,7 +60,7 @@ module.exports = {
.setColor("GREEN")
.setURL(client.web)
);
- await client.data.rmv(message.author.id, itemPrice);
+ await client.rmv(message.author.id, itemPrice);
});
},
};
diff --git a/commands/Economy/daily.js b/commands/Economy/daily.js
index 7b7b7f4..8ce0fb1 100644
--- a/commands/Economy/daily.js
+++ b/commands/Economy/daily.js
@@ -22,7 +22,7 @@ module.exports = {
.setColor(client.color)
.setFooter(`Made by ${client.author}`)
.setTimestamp();
- await client.data.add(message.author.id, money);
+ await client.add(message.author.id, money, message);
return message.inlineReply(pre_embed);
} else {
money = 10000;
@@ -38,7 +38,7 @@ module.exports = {
.setColor(client.color)
.setFooter(`Made by ${client.author}`)
.setTimestamp();
- await client.data.add(message.author.id, money);
+ await client.add(message.author.id, money, message);
return message.inlineReply(norm_embed);
}
}
diff --git a/commands/Economy/drop.js b/commands/Economy/drop.js
index e18c950..160cdb9 100644
--- a/commands/Economy/drop.js
+++ b/commands/Economy/drop.js
@@ -1,5 +1,4 @@
const { Client, Message, MessageEmbed } = require("discord.js");
-require("../../inlinereply");
module.exports = {
name: "drop",
usage: "{Channel} (Number)",
@@ -12,7 +11,7 @@ module.exports = {
if (!coinsAmount) {
return client.err(message, "Economy", "drop", 5);
}
- if ((await client.data.bal(message.author.id)) < coinsAmount) {
+ if ((await client.bal(message.author.id)) < coinsAmount) {
return client.err(message, "Economy", "drop", 20);
}
const filter = msg =>
@@ -21,11 +20,11 @@ module.exports = {
channel.send(
`${message.author.username} has dropped a ${client.currency} bomb! Use ${p}claim to claim ${client.currency}!!`
);
- client.data.rmv(message.author.id, parseInt(coinsAmount));
+ client.rmv(message.author.id, parseInt(coinsAmount));
channel.awaitMessages(filter, { max: 1, time: 60000 }).then(async msg => {
const id = msg.first().author.id;
const coinsToClaim = parseInt(coinsAmount);
- await client.data.add(id, coinsToClaim);
+ await client.add(id, coinsToClaim, message);
msg
.first()
.inlineReply(
diff --git a/commands/Economy/gift.js b/commands/Economy/gift.js
index 75b78fb..cdf7a6c 100644
--- a/commands/Economy/gift.js
+++ b/commands/Economy/gift.js
@@ -62,6 +62,7 @@ module.exports = {
if (data.Inventory[itemName] <= 0) {
return client.err(message, "Economy", "gift", 23);
} else {
+ data.CP+=0
data.Inventory[itemName]--;
message.channel.send(
new MessageEmbed()
@@ -88,6 +89,7 @@ module.exports = {
} else {
new inventory({
User: user.id,
+ CP: 0,
Inventory: {
[itemName]: 1,
},
diff --git a/commands/Economy/give.js b/commands/Economy/give.js
index b3acd36..904cc8e 100644
--- a/commands/Economy/give.js
+++ b/commands/Economy/give.js
@@ -21,11 +21,11 @@ module.exports = {
if (isNaN(parsed)) return client.err(message, "Economy", "give", 7);
if (user.id === message.author.id)
return client.err(message, "Economy", "give", 2);
- if (parsed > (await client.data.bal(message.author.id))) {
+ if (parsed > (await client.bal(message.author.id))) {
return client.err(message, "Economy", "give", 20);
}
- await client.data.rmv(message.author.id, parsed);
- await client.data.add(user.id, parsed);
+ await client.rmv(message.author.id, parsed);
+ await client.add(user.id, parsed, message);
message.channel.send(
new MessageEmbed()
.setColor(client.color)
@@ -33,7 +33,7 @@ module.exports = {
.setDescription(
`**${message.author.username}** has given **${
user.username
- }** **${parsed.toLocaleString()}**${client.currrency}`
+ }** **${parsed.toLocaleString()}**${client.currency}`
)
);
},
diff --git a/commands/Economy/inv.js b/commands/Economy/inv.js
index 230cbfe..3ec0a11 100644
--- a/commands/Economy/inv.js
+++ b/commands/Economy/inv.js
@@ -22,25 +22,36 @@ module.exports = {
) ||
message.member;
inv.findOne({ User: user.id }, async (err, data) => {
- if (!data.Inventory)
- return client.err(message, "Economy", "inventory", 25);
- const mappedData = Object.keys(data.Inventory).map(key => {
- return `\n**${key}** — ${data.Inventory[key]}`;
- });
- const c = util.chunk(mappedData, 5).map(x => x.join("\n"));
- const embed = new MessageEmbed()
- .setTimestamp()
- .setTitle(`${user.displayName}'s inventory`)
- .setColor("client.color")
- .setDescription(c[0])
- .setFooter(`Page 1 of ${c.length}`);
- try {
- const msg = await message.channel.send(embed);
- if (mappedData.length > 5)
- await util.pagination(msg, message.author, c);
- } catch (e) {
- console.log(e);
+ if (data) {
+ if (!data.Inventory)
+ return client.err(message, "Economy", "inv", 25);
+ if (data.Inventory === undefined) return client.err(message, "Economy", "inv", 25)
+ const mappedData = Object.keys(data.Inventory).map(key => {
+ if (data.Inventory[key] == 0) {
+ return;
+ }
+ return `\n**${key}** — ${data.Inventory[key]}`;
+ });
+
+ if (mappedData.length == 0) {
+ return client.err(message, "Economy", "inv", 25);
+ }
+ const c = util.chunk(mappedData, 5).map(x => x.join("\n"));
+ const embed = new MessageEmbed()
+ .setTimestamp()
+ .setTitle(`${user.displayName}'s inventory`)
+ .setColor("client.color")
+ .setDescription(c[0])
+ .setFooter(`Page 1 of ${c.length}`);
+ try {
+ const msg = await message.channel.send(embed);
+ if (mappedData.length > 5)
+ await util.pagination(msg, message.author, c);
+ } catch (e) {
+ console.log(e);
+ }
}
+ else return client.err(message, "Economy", "inv", 25);
});
- },
-};
+ }
+}
\ No newline at end of file
diff --git a/commands/Economy/lb.js b/commands/Economy/lb.js
index db0335a..adb8268 100644
--- a/commands/Economy/lb.js
+++ b/commands/Economy/lb.js
@@ -6,6 +6,7 @@ module.exports = {
timeout: 5000,
usage: "Check the leaderboard of a server",
category: "Economy",
+ Level: true,
run: async (client, message, args) => {
const rawLeaderboard = await Levels.fetchLeaderboard(message.guild.id, 10);
if (rawLeaderboard.length < 1)
diff --git a/commands/Economy/profile.js b/commands/Economy/profile.js
new file mode 100644
index 0000000..f13c757
--- /dev/null
+++ b/commands/Economy/profile.js
@@ -0,0 +1,47 @@
+const { Client, Message, MessageEmbed } = require("discord.js");
+module.exports = {
+ name: "profile",
+ usage: "(User)",
+ description: "Check an user economy profile",
+ category: "Economy",
+ run: async (client, message, args, data, utils) => {
+ const user =
+ message.mentions.members.first() ||
+ message.guild.members.cache.get(args[0]) ||
+ message.guild.members.cache.find(
+ r =>
+ r.user.username.toLowerCase() === args.join(" ").toLocaleLowerCase()
+ ) ||
+ message.guild.members.cache.find(
+ r => r.displayName.toLowerCase() === args.join(" ").toLocaleLowerCase()
+ ) ||
+ message.member;
+ const bjwin = await client.bjWin(message.author.id);
+ const swin = await client.sWin(message.author.id);
+ const bwin = await client.bWin(message.author.id);
+ const cmdused = await client.cmdsUSED(message.author.id);
+ const bal = await client.bal(message.author.id);
+ const multi = await client.multi(message);
+ const game = new MessageEmbed()
+ .setFooter(
+ `Requested by ${message.author.tag}`,
+ message.author.displayAvatarURL({ dynamic: true, size: 4096 })
+ )
+ .setColor("7196ef")
+ .setTitle(`${user.displayName}'s profile`)
+ .addField(
+ "**Stats**\n",
+ `🃏 Blackjack wins: \`${bjwin}\`\n` +
+ `🎰 Slots wins: \`${swin}\`\n` +
+ `🕹 Bet wins: \`${bwin}\`\n` +
+ `⌨️Commands used: \`${cmdused}\`\n` +
+ `Totalwins: \`${bjwin + swin + bwin}\``,
+ true
+ )
+ .addField(
+ "**Balance**\n",
+ `💲CP: \`${bal}\`\n` + `➕Multiplier: \`${`1.${multi}x`}\``
+ );
+ message.inlineReply(game);
+ },
+};
diff --git a/commands/Economy/slots.js b/commands/Economy/slots.js
index 9c15dac..9720806 100644
--- a/commands/Economy/slots.js
+++ b/commands/Economy/slots.js
@@ -8,10 +8,9 @@ module.exports = {
run: async (client, message, args) => {
const max = 1000000;
const slots = [
- "<:dumbcat:818913965353730068>",
- "<:nicecat:740978278055280722>",
- "<:wah:836951911729987597>",
- "<:startledcat:836619417550061580>",
+ "<:blushca:852174555513618502>",
+ "<:abusecat:853501068074942464>",
+ "<:dumbcat:855462498550415362>",
];
const slotOne = slots[Math.floor(Math.random() * slots.length)];
const slotTwo = slots[Math.floor(Math.random() * slots.length)];
@@ -26,7 +25,7 @@ module.exports = {
if (isNaN(args[0])) return client.err(message, "Economy", "slots", 7);
const amt = parseInt(args[0]);
if (amt > max) return client.err(message, "Economy", "slots", 101);
- if ((await client.data.bal(message.author.id)) < amt) {
+ if ((await client.bal(message.author.id)) < amt) {
return client.err(message, "Economy", "slots", 20);
}
if (
@@ -35,7 +34,8 @@ module.exports = {
(slotseven === sloteight && slotseven === slotnine)
) {
const winamt = Math.floor(Math.random() * 2 * amt);
- await client.data.add(message.author.id, winamt);
+ await client.add(message.author.id, winamt, message);
+ await client.ADDSWin(message.author.id);
const won = new MessageEmbed()
.setColor("GREEN")
.addField(
@@ -53,13 +53,12 @@ module.exports = {
.setTitle(`${message.author.username} wins a slots game`)
.setDescription(
`You win\n**${winamt}**${client.currency}\nYou now have **${
- parseInt(await client.data.bal(message.author.id)) - amt
+ parseInt(await client.bal(message.author.id)) - amt
}**${client.currency}`
);
message.inlineReply(won);
- console.log(`Coins: ${await client.data.bal(message.author.id)}`);
} else {
- await client.data.rmv(message.author.id, amt);
+ await client.rmv(message.author.id, amt);
const lost = new MessageEmbed()
.setColor("RED")
.addField(
@@ -77,7 +76,7 @@ module.exports = {
.setTitle(`${message.author.username} loses a slots game`)
.setDescription(
`You lost\n**${amt}**${client.currency}\nYou now have **${
- parseInt(await client.data.bal(message.author.id)) - amt
+ parseInt(await client.bal(message.author.id)) - amt
}**${client.currency}`
);
message.inlineReply(lost);
diff --git a/commands/Economy/steal.js b/commands/Economy/steal.js
index 9286771..d038410 100644
--- a/commands/Economy/steal.js
+++ b/commands/Economy/steal.js
@@ -37,7 +37,7 @@ module.exports = {
new db({
User: message.author.id,
CP: 0,
- Inventory: "",
+ Inventory: {},
}).save();
return client.err(message, "Economy", "steal", 20);
} else if (data) {
@@ -49,7 +49,7 @@ module.exports = {
new db({
User: tryrob.id,
CP: 0,
- Inventory: "",
+ Inventory: {},
}).save();
return message.inlineReply(
new MessageEmbed()
diff --git a/commands/Economy/work.js b/commands/Economy/work.js
index 47097a2..6c3f934 100644
--- a/commands/Economy/work.js
+++ b/commands/Economy/work.js
@@ -1,5 +1,4 @@
const { Client, Message, MessageEmbed } = require("discord.js");
-require("../../inlinereply");
module.exports = {
name: "work",
description: "Work to earn money",
@@ -18,7 +17,9 @@ module.exports = {
];
const earning = client.function.rndint(5000, 3000);
const jobs = job[Math.floor(Math.random() * job.length)];
- await client.data.add(message.author.id, earning);
- return message.inlineReply(`You worked as a ${jobs} and earned ${earning}`);
+ await client.add(message.author.id, earning, message);
+ return message.inlineReply(
+ `You worked as a **${jobs}** and earned **${earning}${client.currency}**`
+ );
},
};
diff --git a/commands/Fun/ascii.js b/commands/Fun/ascii.js
new file mode 100644
index 0000000..19cc1ab
--- /dev/null
+++ b/commands/Fun/ascii.js
@@ -0,0 +1,21 @@
+const { Client, Message, MessageEmbed } = require("discord.js");
+module.exports = {
+ name: "ascii",
+ description: "Converts text into ASCII art",
+ category: "Fun",
+ /**
+ * @param {Client} client
+ * @param {Message} message
+ * @param {String[]} args
+ */
+ run: async (client, message, args) => {
+ const figlet = require("figlet");
+ if (!args[0]) return client.err(message, "Fun", "ascii", 12);
+ let msg = args.slice(0).join(" ");
+ figlet.text(msg, async (err, data) => {
+ if (err) console.log(err);
+ if (data.length > 2000) return client.err(message, "Fun", "ascii", 54);
+ message.channel.send(`\`\`\`${data}\`\`\``);
+ });
+ },
+};
diff --git a/commands/Fun/dino.js b/commands/Fun/dino.js
new file mode 100644
index 0000000..83d50db
--- /dev/null
+++ b/commands/Fun/dino.js
@@ -0,0 +1,102 @@
+const Discord = require("discord.js");
+const ms = require("ms");
+
+module.exports = {
+ name: "dinochrome",
+ aliases: ["dino"],
+ category: "Fun",
+ description: "Dinosaur in Chrome",
+ run: async (client, message, args) => {
+ let msg = await message.channel.send(`---------------🦖`);
+ let time = 1 * 1000;
+
+ setTimeout(function () {
+ msg.edit(`-----------🦖----`);
+ }, time);
+ time += 1.5 * 1000;
+
+ setTimeout(function () {
+ msg.edit(`----------🦖------`);
+ }, time);
+ time += 1.5 * 1000;
+
+ setTimeout(function () {
+ msg.edit(`--------🦖--------`);
+ }, time);
+ time += 1.5 * 1000;
+
+ setTimeout(function () {
+ msg.edit(`------🦖-----------`);
+ }, time);
+ time += 1.5 * 1000;
+
+ setTimeout(function () {
+ msg.edit(`-------🦖-----------`);
+ }, time);
+ time += 1.5 * 1000;
+
+ setTimeout(function () {
+ msg.edit(`---🌵-----🦖---------`);
+ }, time);
+ time += 1.5 * 1000;
+
+ setTimeout(function () {
+ msg.edit(`---🌵-🦖-------------`);
+ }, time);
+ time += 1.5 * 1000;
+
+ setTimeout(function () {
+ msg.edit(`🦖\n ---🌵--------------`);
+ }, time);
+ time += 1.5 * 1000;
+
+ setTimeout(function () {
+ msg.edit(`------🦖---🌵--------------`);
+ }, time);
+ time += 1.5 * 1000;
+
+ setTimeout(function () {
+ msg.edit(`----🦖-----🌵----------------`);
+ }, time);
+ time += 1.5 * 1000;
+
+ setTimeout(function () {
+ msg.edit(`-🌵🌵-----🦖-------🌵--------`);
+ }, time);
+ time += 1.5 * 1000;
+
+ setTimeout(function () {
+ msg.edit(`----🌵🌵-🦖----------🌵------`);
+ }, time);
+ time += 1.5 * 1000;
+
+ setTimeout(function () {
+ msg.edit(`🦖\n ---🌵🌵-------------🌵---`);
+ }, time);
+ time += 1.5 * 1000;
+
+ setTimeout(function () {
+ msg.edit(`-----🦖---🌵🌵-------------🌵--`);
+ }, time);
+ time += 1.5 * 1000;
+
+ setTimeout(function () {
+ msg.edit(`-------🦖-----🌵🌵-------------`);
+ }, time);
+ time += 1.5 * 1000;
+
+ setTimeout(function () {
+ msg.edit(`🎂----🦖--------🌵🌵-----------`);
+ }, time);
+ time += 1.5 * 1000;
+
+ setTimeout(function () {
+ msg.edit(`---🎂--🦖----------🌵🌵---------`);
+ }, time);
+ time += 1.5 * 1000;
+
+ setTimeout(function () {
+ msg.edit(`**Ⓜⓘⓢⓢⓘⓞⓝ Ⓒⓞⓜⓟⓛⓔⓣⓔⓓ !**\n ---🎂🦖----------🌵🌵-------------`);
+ }, time);
+ },
+};
diff --git a/commands/Fun/emojify.js b/commands/Fun/emojify.js
new file mode 100644
index 0000000..bfcafe0
--- /dev/null
+++ b/commands/Fun/emojify.js
@@ -0,0 +1,40 @@
+module.exports = {
+ name: "emojify",
+ usage: "(Word)",
+ description: "Emojify a sentence",
+ run: async (client, message, args) => {
+ const mapping = {
+ " ": " ",
+ 0: ":zero:",
+ 1: ":one:",
+ 2: ":two:",
+ 3: ":three:",
+ 4: ":four:",
+ 5: ":five:",
+ 6: ":six:",
+ 7: ":seven:",
+ 8: ":eight:",
+ 9: ":nine:",
+ "!": ":grey_exclamation:",
+ "?": ":grey_question:",
+ "#": ":hash:",
+ "*": ":asterisk:",
+ };
+
+ "abcdefghijklmnopqrstuvwxyz".split("").forEach(c => {
+ mapping[c] = mapping[c.toUpperCase()] = ` :regional_indicator_${c}:`;
+ });
+
+ if (!args[0]) {
+ return client.err(message, "Fun", "emojify", 12);
+ }
+ message.channel.send(
+ args
+ .slice(0)
+ .join(" ")
+ .split("")
+ .map(c => mapping[c] || c)
+ .join("")
+ );
+ },
+};
diff --git a/commands/Fun/hack.js b/commands/Fun/hack.js
new file mode 100644
index 0000000..76c399a
--- /dev/null
+++ b/commands/Fun/hack.js
@@ -0,0 +1,129 @@
+const { MessageEmbed } = require("discord.js");
+module.exports = {
+ name: "hack",
+ description: "Hack a user",
+ usage: "(User)",
+ category: "Fun",
+ run: async (client, message, args) => {
+ let answers = [
+ "@yousuck.noob",
+ "@hesnoob.haha",
+ "@thisguy.suck",
+ "@paypal.removed",
+ "@noob.haha",
+ "@hacked.xyz",
+ "@susmate.com",
+ "@gmail.sus",
+ "@why-im.withyou",
+ "@someone-end.me",
+ "@isnoob.io",
+ "@username-is.noob",
+ "@hahaget.lost",
+ "@yahoo.sus",
+ "@botmail.zip",
+ "@gmail.com",
+ "@yahoo.com",
+ ];
+ let passwords = [
+ "Disb****",
+ "disc******",
+ "pass**********",
+ "get****",
+ "mails***",
+ "endm****",
+ "gamer***********",
+ "asegeio*********",
+ "whys*******",
+ "Brot******",
+ "imwith*******",
+ "luckyyougotthispasswordlolnocencor",
+ "starb*******",
+ "egghunt2***",
+ "secr*****",
+ ];
+ let ips = [
+ "10.313.523.502.00.1",
+ "25.537.753.462.29.2",
+ "21.175.866.974.07.08",
+ "32.653.587.825.35.5",
+ "12.172.764.781.22.8",
+ "91.723.242.452.09.3",
+ "92.743.116.896.85.6",
+ "84.091.000.853.54.7",
+ "51.071.124.129.12.0",
+ ];
+ const answer = answers[Math.floor(Math.random() * answers.length)];
+ const passwrd = passwords[Math.floor(Math.random() * passwords.length)];
+ const ip = ips[Math.floor(Math.random() * ips.length)];
+ const taggedUser = message.mentions.users.first();
+ if (!taggedUser) {
+ return client.err(message, "Fun", "hack", 1);
+ }
+ message.channel.send(`Hacking ${taggedUser.username}...`);
+ message.channel.send("Status: ■□□□□□□□□□□ 0%").then(msg => {
+ client.function.sleep(100);
+ msg.edit("Status: ■■□□□□□□□□□ 7%: Hacking Email...");
+ client.function.sleep(600);
+ msg.edit(
+ `Status: ■■■□□□□□□□□ 8%:\n \`Email: ${taggedUser.username}@yousuck.noob\`\n \`Password: ${passwrd}\` `
+ );
+ client.function.sleep(600);
+ msg.edit("Status: ■■□□□□□□□□□ 9%: Logging in to the Email...");
+ client.function.sleep(2000);
+ msg.edit("Status: ■■■□□□□□□□□ 12%: Turning off the antivirus");
+ client.function.sleep(1000);
+ msg.edit("Status: ■■■■□□□□□□ 14%: Downloading SYNAPSE X");
+ client.function.sleep(100);
+ msg.edit("Status: ■■■□□□□□□□□ 17%: Deleting Captcha...");
+ client.function.sleep(100);
+ msg.edit("Status: ■■□□□□□□□□□ 20%: Deleting Paypal account...");
+ client.function.sleep(10);
+ msg.edit("Status: ■■■□□□□□□□□ 21%");
+ client.function.sleep(12);
+ msg.edit("Status: ■■■■□□□□□□□ 22%");
+ client.function.sleep(100);
+ msg.edit("Status: ■■■■■□□□□□□ 24%: Paypal account deleted");
+ client.function.sleep(1000);
+ msg.edit("Status: ■■■■□□□□□□ 29%: Hacking is almost ready...");
+ client.function.sleep(80);
+ msg.edit("Status: ■■■□□□□□□□□ 31%");
+ client.function.sleep(80);
+ msg.edit("Status: ■■■■□□□□□□□ 36%");
+ client.function.sleep(40);
+ msg.edit("Status: ■■■■■□□□□□□ 41%");
+ client.function.sleep(60);
+ msg.edit("Status: ■■■■□□□□□□□ 47%");
+ client.function.sleep(50);
+ msg.edit("Status: ■■■■■■□□□□□ 53%");
+ client.function.sleep(3000);
+ msg.edit(
+ `Status: ■■■■■■■□□□□ 58%: Email password changed so ${taggedUser.username} can not login`
+ );
+ client.function.sleep(500);
+ msg.edit("Status: ■■■■■■□□□□□ 66%");
+ client.function.sleep(60);
+ msg.edit("Status: ■■■■■□□□□□□ 74%");
+ client.function.sleep(20);
+ msg.edit(`Status: ■■■■■□□□□□□ 79%: IP address found: ${ip}`);
+ client.function.sleep(83);
+ msg.edit("Status: ■■■■■■□□□□ 80%");
+ client.function.sleep(50);
+ msg.edit("Status: ■■■■■■■□□□ 85%");
+ client.function.sleep(14);
+ msg.edit("Status: ■■■■■■■■■□□ 93%");
+ client.function.sleep(70);
+ msg.edit("Status: ■■■■■■■■■■□ 97%");
+ client.function.sleep(90);
+ msg.edit("Status: ■■■■■■■■■■■ 100%").then(() => {
+ const embed = new MessageEmbed()
+ .setDescription(`${taggedUser} has been hacked!`)
+ .addField("Email", `${taggedUser.username}${answer}`)
+ .addField("Password", `${passwrd}`)
+ .addField("IP address", `${ip}`)
+ .setFooter(`Made by ${client.author}`)
+ .setColor("020203a");
+ message.channel.send(embed);
+ });
+ });
+ },
+};
diff --git a/commands/Fun/hangman.js b/commands/Fun/hangman.js
index 1de8918..e1b807a 100644
--- a/commands/Fun/hangman.js
+++ b/commands/Fun/hangman.js
@@ -8,7 +8,7 @@ module.exports = {
category: "Fun",
run: async (client, message, args) => {
if (playing.has(message.channel.id))
- return message.reply("Only one game may be occurring per channel.");
+ return message.inlineReply("Only one game may be occurring per channel.");
playing.add(message.channel.id);
try {
const { body } = await get("https://emilia-api.xyz/api/hangman").set(
@@ -55,7 +55,7 @@ module.exports = {
});
//m.delete();
if (!guess.size) {
- await message.reply("Sorry, time is up!");
+ await message.inlineReply("Sorry, time is up!");
break;
}
const choice = guess.first().content.toLowerCase();
diff --git a/commands/Fun/obama.js b/commands/Fun/obama.js
new file mode 100644
index 0000000..15fdbfa
--- /dev/null
+++ b/commands/Fun/obama.js
@@ -0,0 +1,45 @@
+const o = "⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⠛⠛⠛⠉⠉⠉⠋⠛⠛⠛⠻⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿";
+const b = "⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠛⠉⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠉⠙⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿";
+const a = "⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠋⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠈⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿";
+const m = "⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠏⠄⠄⠄⠄⠄⠄⠄⠂⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠈⠹⣿⣿⣿⣿⣿⣿⣿";
+const a2 = "⣿⣿⣿⣿⣿⣿⣿⣿⣿⠛⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠠⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠘⢻⣿⣿⣿⣿⣿";
+const aa = "⣿⣿⣿⣿⣿⣿⣿⣿⠃⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⢀⠄⢠⠄⠄⡀⠄⠄⢀⠂⠄⠄⠄⠄⠄⠄⠄⠄⠄⡁⠄⠄⢛⣿⣿⣿⣿";
+const ab = "⣿⣿⣿⣿⣿⣿⣿⡇⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠐⡈⢔⠸⣐⢕⢕⢵⢰⢱⢰⢐⢤⡡⡢⣕⢄⢢⢠⠄⠄⠄⠄⠄⠄⠙⣿⣿⣿";
+const ac = "⣿⣿⣿⣿⣿⣿⣿⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⡁⠂⠅⢕⠌⡎⡎⣎⢎⢮⢮⣳⡳⣝⢮⢺⢜⢕⢕⢍⢎⠪⡐⠄⠁⠄⠸⣿⣿";
+const ad = "⣿⣿⣿⣿⣿⣿⠏⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠐⠄⠄⢅⠣⡡⡣⣣⡳⡵⣝⡮⣗⣗⡯⣗⣟⡮⡮⣳⣣⣳⢱⢱⠱⣐⠄⠂⠄⢿⣿";
+const ae = "⣿⣿⣿⣿⣿⣿⠄⠄⠄⠄⠄⠄⠄⠂⠄⠄⠄⠄⠄⠄⢂⢈⠢⡱⡱⡝⣮⣿⣟⣿⣽⣷⣿⣯⣿⣷⣿⣿⣿⣾⣯⣗⡕⡇⡇⠄⠂⡀⢹⣿";
+const af = "⣿⣿⣿⣿⣿⡟⠄⠄⠄⠄⠄⠄⠂⠄⠄⠄⠄⠄⠄⠐⢀⢂⢕⢸⢨⢪⢳⡫⣟⣿⣻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡺⡮⡣⡣⠠⢂⠒⢸⣿";
+const ag = "⣿⣿⣿⣿⣿⡇⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠠⠐⠄⡂⠆⡇⣗⣝⢮⢾⣻⣞⣿⣿⣿⣿⣿⣿⣿⣿⢿⣽⣯⡯⣺⢸⢘⠨⠔⡅⢨⣿";
+const ah = "⣿⣿⠋⠉⠙⠃⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠁⠄⠄⠄⡂⡪⡪⡪⡮⡮⡯⣻⣽⣾⣿⣿⣿⣟⣿⣿⣿⣽⣿⣿⡯⣯⡺⡸⡰⡱⢐⡅⣼⣿";
+const ai = "⣿⠡⡀⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠠⠈⠆⠱⠑⠝⠜⠕⡝⡝⣞⢯⢿⣿⣿⡿⣟⣿⣿⣿⡿⡿⣽⣷⣽⡸⡨⡪⣂⠊⣿⣿";
+const aj = "⣿⠡⠄⡨⣢⠐⠁⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠐⠍⡓⣗⡽⣝⠽⠍⠅⠑⠁⠉⠘⠘⠘⠵⡑⢜⢀⢀⢉⢽";
+const ak = "⣿⠁⠠⢱⢘⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠈⠈⠱⣁⠜⡘⠌⠄⠄⡪⣳⣟⡮⢅⠤⠠⠄⠄⣀⣀⡀⡀⠄⠈⡂⢲⡪⡠⣿";
+const al = "⣿⡇⠨⣺⢐⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⡀⠄⠄⠄⠤⡠⡢⢒⠦⠠⠄⠄⠄⡸⢽⣟⢮⠢⡂⡐⠄⡈⡀⠤⡀⠄⠑⢄⠨⢸⡺⣐⣿";
+const am = "⣿⣿⠈⠕⠁⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⡂⡪⡐⡥⢤⣰⣰⣰⡴⡮⠢⠂⠄⠄⡊⢮⢺⢕⢵⢥⡬⣌⣒⡚⣔⢚⢌⢨⢚⠌⣾⡪⣾⣿";
+const an = "⣿⣿⣆⠄⡀⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⡑⢕⢕⡯⡷⣕⢧⢓⢭⠨⡀⠄⡂⠨⡨⣪⡳⣝⢝⡽⣻⣻⣞⢽⣲⢳⢱⢡⠱⠨⣟⢺⣿⣿";
+const ao = "⣿⣿⣿⡆⠄⡅⠇⡄⠄⠄⠄⠄⠄⠄⠄⠐⠨⢪⢹⢽⢽⣺⢝⠉⠁⠁⠄⠄⠄⢌⢎⡖⡯⡎⡗⢝⠜⣶⣯⣻⢮⡻⣟⣳⡕⠅⣷⣿⣿⣿";
+const ap = "⣿⣿⣿⣿⣶⣶⣿⣷⠄⠄⠄⠄⠄⠄⠄⠄⠈⠔⡑⠕⠝⠄⡀⠄⠄⠊⢆⠂⠨⡪⣺⣮⣿⡾⡜⣜⡜⣄⠙⢞⣿⢿⡿⣗⢝⢸⣾⣿⣿⣿";
+const aq = "⣿⣿⣿⣿⣿⣿⣿⣿⠄⠄⠄⠄⠄⡀⠄⠄⠄⠄⢀⠄⠠⠄⠠⠄⠄⠄⠄⠄⠄⠊⠺⡹⠳⡙⡜⡓⡭⡺⡀⠄⠣⡻⡹⡸⠨⣣⣿⣿⣿⣿";
+const ar = "⣿⣿⣿⣿⣿⣿⣿⣿⠄⠄⠄⠄⠄⠠⠄⠄⣂⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⢄⠤⡤⡄⡆⡯⡢⡣⡣⡓⢕⠽⣄⠄⠨⡂⢌⣼⣿⣿⣿⣿⣿";
+const a_ = "⣿⣿⣿⣿⣿⣿⣿⣿⡆⠄⠄⠄⠄⠈⠆⠄⠸⡂⠄⠄⠄⢀⠄⢀⠈⠄⠂⠁⠙⠝⠼⠭⠣⠣⠣⠑⠌⠢⠣⡣⡠⡘⣰⣱⣿⣿⣿⣿⣿⣿";
+const at = "⣿⣿⣿⣿⣿⣿⣿⣿⡇⠄⠄⠄⠄⠄⢑⠄⠈⡱⠄⢘⠄⡀⠨⢐⣧⣳⣷⣶⣦⣤⣴⣶⣶⣶⡶⠄⡠⡢⡕⣜⠎⡮⣣⣿⣿⣿⣿⣿⣿⣿";
+const au = "⣿⣿⣿⣿⣿⣿⣿⣿⡇⠄⠄⠄⠄⠄⠄⠢⠄⠨⠄⠄⠣⡀⠄⢀⢀⢙⠃⡿⢿⠿⡿⡿⢟⢋⢔⡱⣝⢜⡜⡪⡪⣵⣿⣿⣿⣿⣿⣿⣿⣿";
+const av = "⣿⣿⣿⣿⣿⣿⣿⣿⡁⠄⠄⠄⠄⠄⠄⠄⠅⠄⠡⠄⠄⠡⢀⢂⠢⡡⠡⠣⡑⣏⢯⡻⡳⣹⡺⡪⢎⠎⡆⢣⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿";
+const aw = "⣿⣿⣿⣿⣿⣿⣿⣿⣇⠄⠄⠄⠄⠄⠄⠄⠐⠄⠄⠁⠄⢈⠄⢂⠕⡕⡝⢕⢎⢎⢮⢎⢯⢺⢸⢬⠣⢃⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿";
+const ax = "⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⡀⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠠⠨⡐⠌⢆⢇⢧⢭⣣⡳⣵⢫⣳⢱⠱⢑⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿";
+const ay = "⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣆⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠁⡊⢌⢢⢡⢣⢪⡺⡪⡎⡎⡎⡚⣨⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿";
+const az = "⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣄⡀⠄⠄⠄⠄⠄⠄⠄⠄⠄⠕⡅⢗⢕⡳⡭⣳⢕⠕⡱⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿";
+const ba = "⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⡀⠄⠄⠄⠄⠄⠄⠄⠄⠄⠌⠄⠑⠩⢈⢂⣱⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿";
+const bb = "⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⡀⢄⠄⣀⠄⡀⣀⢠⢄⣖⣖⣞⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿";
+const bc = "⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⣱⡐⡕⡕⡽⣝⣟⣮⣾⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿";
+
+module.exports = {
+ name: "obama",
+ category: "Utilities",
+ description: "Obama",
+ run: async (client, message, args) => {
+ message.inlineReply(
+ `${o}\n${b}\n${a}\n${m}\n${a2}\n${aa}\n${ab}\n${ac}\n${ad}\n${ae}\n${af}\n${ag}\n${ah}\n${ai}\n${aj}\n${ak}\n${al}\n${am}\n${an}\n${ao}\n${ap}\n${aq}\n${ar}\n${a_}\n${at}\n${au}\n${av}\n${aw}\n${ax}\n${ay}\n${az}\n${ba}\n${bb}\n${bc}`
+ );
+ },
+};
diff --git a/commands/Fun/rps.js b/commands/Fun/rps.js
new file mode 100644
index 0000000..0d99efb
--- /dev/null
+++ b/commands/Fun/rps.js
@@ -0,0 +1,91 @@
+const { MessageEmbed } = require("discord.js");
+module.exports = {
+ name: "rps",
+ aliases: ["rockpapersscissors"],
+ description: "Play a rock paper scissors game",
+ category: "Fun",
+ run: async (client, message, args) => {
+ let embed = new MessageEmbed()
+ .setTitle("RPS GAME")
+ .setAuthor(
+ message.author.tag,
+ message.author.displayAvatarURL({ dynamic: true })
+ )
+ .setDescription(
+ "```Add a reaction to one of these emojis to play the game!```"
+ )
+ .setColor(client.color)
+ .setFooter(`Made by ${client.author}`)
+ .setTimestamp();
+ let msg = await message.channel.send(embed);
+ await msg.react("✊");
+ await msg.react("✂");
+ await msg.react("📄");
+ const filter = (reaction, user) => {
+ return (
+ ["✊", "✂", "📄"].includes(reaction.emoji.name) &&
+ user.id === message.author.id
+ );
+ };
+ const choices = ["✊", "✂", "📄"];
+ const me = choices[Math.floor(Math.random() * choices.length)];
+ msg
+ .awaitReactions(filter, { max: 1, time: 60000, error: ["time"] })
+ .then(async collected => {
+ const reaction = collected.first();
+ if (
+ (me === "✊" && reaction.emoji.name === "✂") ||
+ (me === "📄" && reaction.emoji.name === "✊") ||
+ (me === "✂" && reaction.emoji.name === "📄")
+ ) {
+ const reaction = collected.first();
+ let result = new MessageEmbed()
+ .setTitle("You lost!")
+ .setColor("RED")
+ .setFooter(`Made by ${client.author}`)
+ .setTimestamp()
+ .setAuthor(
+ message.author.tag,
+ message.author.displayAvatarURL({ dynamic: true })
+ )
+ .addField("Your choice", `${reaction.emoji.name}`)
+ .addField("My choice", `${me}`);
+ await msg.edit("", result);
+ } else if (me === reaction.emoji.name) {
+ const reaction = collected.first();
+ let result = new MessageEmbed()
+ .setTitle("Tie!")
+ .setColor("GREY")
+ .setFooter(`Made by ${client.author}`)
+ .setTimestamp()
+ .setAuthor(
+ message.author.tag,
+ message.author.displayAvatarURL({ dynamic: true })
+ )
+ .addField("Your choice", `${reaction.emoji.name}`)
+ .addField("My choice", `${me}`);
+ await msg.edit("", result);
+ } else {
+ const reaction = collected.first();
+ let result = new MessageEmbed()
+ .setTitle("You won!")
+ .setColor("GREEN")
+ .setFooter(`Made by ${client.author}`)
+ .setTimestamp()
+ .setAuthor(
+ message.author.tag,
+ message.author.displayAvatarURL({ dynamic: true })
+ )
+ .addField("Your choice", `${reaction.emoji.name}`)
+ .addField("My choice", `${me}`);
+ await msg.edit("", result);
+ }
+ })
+ .catch(r => {
+ console.log(r);
+ message.inlineReply(
+ "Your game has lost since you didn't response in time"
+ );
+ });
+ },
+};
diff --git a/commands/Fun/ship.js b/commands/Fun/ship.js
new file mode 100644
index 0000000..7c13d12
--- /dev/null
+++ b/commands/Fun/ship.js
@@ -0,0 +1,31 @@
+const block = "⬛";
+const heart = "🟥";
+const { MessageEmbed } = require("discord.js");
+
+module.exports = {
+ name: "ship",
+ aliases: ["love", "loverate", "shipping"],
+ description: "Ship to you an user",
+ usage: "(Text) (Text)",
+ category: "Fun",
+ run: async (client, message, args) => {
+ const msg = await message.channel.send("Shipping...");
+ const user1 = args[0];
+ const user2 = args[1];
+ if (!user1) return client.err(message, "Fun", "ship", 12);
+ if (!user2) return client.err(message, "Fun", "ship", 12);
+ let loveEmbed = new MessageEmbed()
+ .setColor("dd2e44")
+ .setFooter(`Shipped by ${message.author.tag}`)
+ .setTimestamp()
+ .setTitle(`💘 | Shipping ${user1} and ${user2} | 💘`)
+ .setDescription(`🔻 | ${user1} \n${ship()}\n🔺 | ${user2}`);
+ msg.edit("", loveEmbed);
+ },
+};
+function ship() {
+ const hearts = Math.floor(Math.random() * 100);
+ const hearte = hearts / 10;
+ const str = `${heart.repeat(hearte)}${block.repeat(10 - hearte)} ${hearts}%`;
+ return str;
+}
diff --git a/commands/Music/bassboost.js b/commands/Music/bassboost.js
new file mode 100644
index 0000000..32c66ba
--- /dev/null
+++ b/commands/Music/bassboost.js
@@ -0,0 +1,33 @@
+const levels = {
+ 0: 0.0,
+ 1: 0.5,
+ 2: 1.0,
+ 3: 2.0,
+};
+
+module.exports = {
+ name: "bassboost",
+ aliases: ["bb", "bassboost"],
+ description: "Set filter/bassboost level",
+ category: "Music",
+ usage: "(Number)",
+ Premium: true,
+ run: async (client, message, args) => {
+ const player = message.client.manager.get(message.guild.id);
+ if (!player) return client.err(message, "Music", "bassboost", 34);
+ const { channel } = message.member.voice;
+ if (!channel) return client.err(message, "Music", "bassboost", 35);
+ if (channel.id !== player.voiceChannel)
+ return client.err(message, "Music", "bassboost", 55);
+ let level = "0";
+ if (args.length && args[0].toLowerCase() in levels)
+ level = args[0].toLowerCase();
+ const bands = new Array(3)
+ .fill(null)
+ .map((_, i) => ({ band: i, gain: levels[level] }));
+ player.setEQ(...bands);
+ return message.inlineReply(
+ `The player's bassboost level has been set to ${level}`
+ );
+ },
+};
diff --git a/commands/Music/leave.js b/commands/Music/leave.js
deleted file mode 100644
index 848a247..0000000
--- a/commands/Music/leave.js
+++ /dev/null
@@ -1,30 +0,0 @@
-const { Client, Message, MessageEmbed } = require("discord.js");
-module.exports = {
- name: "disconnect",
- aliases: ["dc"],
- description: "Leave The Voice Channel",
- category: "Music",
- run: async (client, message, args) => {
- let channel = message.member.voice.channel;
- if (!channel) return client.err(message, "Music", "leave", 35);
- if (!message.guild.me.voice.channel)
- return client.err(message, "Music", "leave", 41);
- try {
- await message.guild.me.voice.channel.leave();
- } catch (error) {
- await message.guild.me.voice.kick(message.guild.me.id);
- }
-
- const Embed = new MessageEmbed()
- .setAuthor("Left Voice Channel", client.user.displayAvatarURL())
- .setColor("GREEN")
- .setTitle(
- `By user: ${message.author.tag}`,
- message.author.displayAvatarURL({ dynamic: true })
- )
- .setDescription("🎶 Left The Voice Channel.")
- .setTimestamp();
-
- return message.channel.send(Embed);
- },
-};
diff --git a/commands/Music/loop.js b/commands/Music/loop.js
index 2c53495..8a8f6b2 100644
--- a/commands/Music/loop.js
+++ b/commands/Music/loop.js
@@ -1,21 +1,22 @@
-const { Client, Message, MessageEmbed } = require("discord.js");
module.exports = {
name: "loop",
+ aliases: ["repeat"],
description: "Music loop",
category: "Music",
run: async (client, message, args) => {
- const serverQueue = message.client.queue.get(message.guild.id);
- if (serverQueue) {
- serverQueue.loop = !serverQueue.loop;
- return message.channel.send({
- embed: {
- color: "GREEN",
- description: `🔁 **|** Loop is ${
- serverQueue.loop === true ? "enabled" : "disabled"
- }`,
- },
- });
+ const player = message.client.manager.get(message.guild.id);
+ if (!player) return client.err(message, "Music", "loop", 34);
+ const { channel } = message.member.voice;
+ if (!channel) return client.err(message, "Music", "loop", 35);
+ if (channel.id !== player.voiceChannel)
+ return client.err(message, "Music", "loop", 55);
+ if (args.length && /queue/i.test(args[0])) {
+ player.setQueueRepeat(!player.queueRepeat);
+ const queueRepeat = player.queueRepeat ? "enabled" : "disabled";
+ return message.inlineReply(`Queue repeat is ${queueRepeat}`);
}
- return client.err(message, "Music", "loop", 34);
+ player.setTrackRepeat(!player.trackRepeat);
+ const trackRepeat = player.trackRepeat ? "enabled" : "disabled";
+ return message.inlineReply(`Queue repeat is ${trackRepeat}`);
},
};
diff --git a/commands/Music/lyrics.js b/commands/Music/lyrics.js
index c7c8c12..e444dbc 100644
--- a/commands/Music/lyrics.js
+++ b/commands/Music/lyrics.js
@@ -1,30 +1,23 @@
-const { Client, Message, MessageEmbed } = require("discord.js");
+const { MessageEmbed } = require("discord.js");
const lyricsFinder = require("lyrics-finder");
const splitlyrics = require("../../util/pagination/pagination");
-
module.exports = {
name: "lyrics",
description: "Get lyrics for the currently playing song",
category: "Music",
+ usage: "(Song)",
run: async (client, message, args) => {
- const queue = message.client.queue.get(message.guild.id);
- if (!queue) return client.err(message, "Music", "lyrics", 34);
let lyrics = null;
try {
- lyrics = await lyricsFinder(queue.songs[0].title, "");
+ lyrics = await lyricsFinder(args.slice(0).join(" "), "");
if (!lyrics)
- lyrics = `**No lyrics are found for ${queue.songs[0].title}.**`;
+ lyrics = `**No lyrics are found for ${args.slice(0).join(" ")}.**`;
} catch (error) {
- lyrics = `**No lyrics are found for ${queue.songs[0].title}.**`;
+ lyrics = `**No lyrics are found for ${args.slice(0).join(" ")}.**`;
}
const splittedLyrics = splitlyrics.chunk(lyrics, 1024);
-
let lyricsEmbed = new MessageEmbed()
- .setAuthor(
- `${queue.songs[0].title} — Lyrics`,
- "https://i.imgur.com/qHPXWxN.gif"
- )
- .setThumbnail(queue.songs[0].img)
+ .setAuthor(`Lyrics`)
.setColor("YELLOW")
.setDescription(splittedLyrics[0])
.setFooter(`Page 1 of ${splittedLyrics.length}.`)
diff --git a/commands/Music/nowplaying.js b/commands/Music/nowplaying.js
index d5f00c5..7187298 100644
--- a/commands/Music/nowplaying.js
+++ b/commands/Music/nowplaying.js
@@ -1,20 +1,114 @@
-const { Client, Message, MessageEmbed } = require("discord.js");
+const { MessageEmbed } = require("discord.js");
+
module.exports = {
name: "nowplaying",
- description: "To show the music which is currently playing in this server",
+ aliases: ["np"],
+ description: "Show now playing music info",
category: "Music",
run: async (client, message, args) => {
- const serverQueue = message.client.queue.get(message.guild.id);
- if (!serverQueue) return client.err(message, "Music", "nowplaying", 34);
- let song = serverQueue.songs[0];
- let thing = new MessageEmbed()
- .setAuthor("Now Playing", "https://i.imgur.com/qHPXWxN.gif")
- .setThumbnail(song.img)
- .setColor("client.color")
- .addField("Name:", `**${song.title}**`, true)
- .addField("Duration:", `**${song.duration}**`, true)
- .addField("Requested by:", `**${song.req.tag}**`, true)
- .setFooter(`Views:${song.views} | ${song.ago}`);
- return message.channel.send(thing);
+ try {
+ function format(millis) {
+ try {
+ var h = Math.floor(millis / 3600000),
+ m = Math.floor(millis / 60000),
+ s = ((millis % 60000) / 1000).toFixed(0);
+ if (h < 1)
+ return (
+ (m < 10 ? "0" : "") +
+ m +
+ ":" +
+ (s < 10 ? "0" : "") +
+ s +
+ " | " +
+ Math.floor(millis / 1000) +
+ " Seconds"
+ );
+ else
+ return (
+ (h < 10 ? "0" : "") +
+ h +
+ ":" +
+ (m < 10 ? "0" : "") +
+ m +
+ ":" +
+ (s < 10 ? "0" : "") +
+ s +
+ " | " +
+ Math.floor(millis / 1000) +
+ " Seconds"
+ );
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ function createBar(player) {
+ try {
+ if (!player.queue.current)
+ return `**"[""▇""—".repeat(size - 1)}]**\n**00:00:00 / 00:00:00**`;
+ let current =
+ player.queue.current.duration !== 0
+ ? player.position
+ : player.queue.current.duration;
+ let total = player.queue.current.duration;
+ let size = 15;
+ let bar =
+ String("|") +
+ String("▇").repeat(Math.round(size * (current / total))) +
+ String("—").repeat(size - Math.round(size * (current / total))) +
+ String("|");
+ return `**${bar}**\n**${
+ new Date(player.position).toISOString().substr(11, 8) +
+ " / " +
+ (player.queue.current.duration == 0
+ ? " ◉ LIVE"
+ : new Date(player.queue.current.duration)
+ .toISOString()
+ .substr(11, 8))
+ }**`;
+ } catch (e) {
+ console.log(e);
+ }
+ }
+
+ const player = message.client.manager.get(message.guild.id);
+ if (!player.queue.current)
+ return client.err(message, "Music", "nowplaying", 37);
+ return message.channel.send(
+ new MessageEmbed()
+ .setAuthor(
+ `Current song playing:`,
+ message.client.user.displayAvatarURL({
+ dynamic: true,
+ })
+ )
+ .setThumbnail(
+ `https://img.youtube.com/vi/${player.queue.current.identifier}/mqdefault.jpg`
+ )
+ .setURL(player.queue.current.uri)
+ .setColor("GREEN")
+ .setTitle(`🎶 **${player.queue.current.title}** 🎶`)
+ .addField(
+ `🕰️ Duration: `,
+ `\`${format(player.queue.current.duration)}\``,
+ true
+ )
+ .addField(`🎼 Song By: `, `\`${player.queue.current.author}\``, true)
+ .addField(
+ `🔢 Queue length: `,
+ `\`${player.queue.length} Songs\``,
+ true
+ )
+ .addField(`🎛️ Progress: `, createBar(player))
+ .setFooter(
+ `Requested by: ${player.queue.current.requester.tag}`,
+ player.queue.current.requester.displayAvatarURL({
+ dynamic: true,
+ })
+ )
+ );
+ } catch (e) {
+ console.log(e);
+ return client.err(message, "Music", "nowplaying", 999);
+ }
},
};
diff --git a/commands/Music/pause.js b/commands/Music/pause.js
index 6c689cb..a8e58dd 100644
--- a/commands/Music/pause.js
+++ b/commands/Music/pause.js
@@ -1,24 +1,18 @@
-const { Client, Message, MessageEmbed } = require("discord.js");
module.exports = {
name: "pause",
- description: "To pause the current music in the server",
+ aliases: ["ps"],
+ description: "Pauses the current playing music",
category: "Music",
run: async (client, message, args) => {
- const serverQueue = message.client.queue.get(message.guild.id);
- if (serverQueue && serverQueue.playing) {
- serverQueue.playing = false;
- try {
- serverQueue.connection.dispatcher.pause();
- } catch (error) {
- message.client.queue.delete(message.guild.id);
- return client.err(message, "Music", "pause", 36);
- }
- let xd = new MessageEmbed()
- .setDescription(`⏸ Paused the music for ${message.author.username}`)
- .setColor("YELLOW")
- .setTitle("Music has been paused.");
- return message.channel.send(xd);
- }
- return client.err(message, "Music", "pause", 34);
+ const player = message.client.manager.get(message.guild.id);
+ if (!player) return client.err(message, "Music", "pause", 34);
+ const { channel } = message.member.voice;
+ if (!channel) return client.err(message, "Music", "pause", 35);
+ if (channel.id !== player.voiceChannel)
+ return client.err(message, "Music", "pause", 55);
+ if (player.paused)
+ return message.inlineReply("The player is already paused");
+ player.pause(true);
+ return message.inlineReply("The player is paused");
},
};
diff --git a/commands/Music/play.js b/commands/Music/play.js
index 00c89d8..bb8a21c 100644
--- a/commands/Music/play.js
+++ b/commands/Music/play.js
@@ -1,199 +1,144 @@
-const { Client, Message, MessageEmbed, Util } = require("discord.js");
-const ytdl = require("ytdl-core");
-const ytdlDiscord = require("discord-ytdl-core");
-const yts = require("yt-search");
-const scdl = require("soundcloud-downloader").default;
-const config = require("../../config.json");
+const Discord = require("discord.js");
+
module.exports = {
name: "play",
- description: "Play songs",
- usage: "(YouTube_URL)/(Song Name)",
aliases: ["p"],
+ description: "Plays your favourite music from YouTube or Spotify",
+ usage: "(Song/Song URL)",
category: "Music",
- BotPerm: ["CONNECT", "SPEAK"],
run: async (client, message, args) => {
- let channel = message.member.voice.channel;
- if (!channel) return client.err(message, "Music", "play", 35);
- var searchString = args.join(" ");
- if (!searchString) return client.err(message, "Music", "play", 0);
- const url = args[0] ? args[0].replace(/<(.+)>/g, "$1") : "";
- var serverQueue = message.client.queue.get(message.guild.id);
-
- let songInfo;
- let song;
- if (
- url.match(/^(https?:\/\/)?(www\.)?(m\.)?(youtube\.com|youtu\.?be)\/.+$/gi)
- ) {
+ try {
+ const { channel } = message.member.voice;
+ if (!channel) return client.err(message, "Music", "play", 35);
+ if (!args.length) return client.err(message, "Music", "play", 0);
+ const player = message.client.manager.create({
+ guild: message.guild.id,
+ voiceChannel: channel.id,
+ textChannel: message.channel.id,
+ selfDeafen: true,
+ });
+ if (player.state !== "CONNECTED") player.connect();
+ const search = args.join(" ");
+ let res;
try {
- songInfo = await ytdl.getInfo(url);
- if (!songInfo) return client.err(message, "Music", "play", 42);
- song = {
- id: songInfo.videoDetails.videoId,
- title: songInfo.videoDetails.title,
- url: songInfo.videoDetails.video_url,
- img: songInfo.player_response.videoDetails.thumbnail.thumbnails[0]
- .url,
- duration: songInfo.videoDetails.lengthSeconds,
- ago: songInfo.videoDetails.publishDate,
- views: String(songInfo.videoDetails.viewCount).padStart(10, " "),
- req: message.author,
- };
- } catch (error) {
+ res = await player.search(search, message.author);
+ if (res.loadType === "LOAD_FAILED") {
+ if (!player.queue.current) player.destroy();
+ throw res.exception;
+ }
+ } catch (e) {
console.log(e);
return client.err(message, "Music", "play", 999);
}
- } else if (url.match(/^https?:\/\/(soundcloud\.com)\/(.*)$/gi)) {
- try {
- songInfo = await scdl.getInfo(url);
- if (!songInfo) return client.err(message, "Music", "play", 43);
- song = {
- id: songInfo.permalink,
- title: songInfo.title,
- url: songInfo.permalink_url,
- img: songInfo.artwork_url,
- ago: songInfo.last_modified,
- views: String(songInfo.playback_count).padStart(10, " "),
- duration: Math.ceil(songInfo.duration / 1000),
- req: message.author,
- };
- } catch (e) {
- console.error(e);
- return client.err(message, "Music", "play", 999);
- }
- } else {
- try {
- var searched = await yts.search(searchString);
- if (searched.videos.length === 0)
- return client.err(message, "Music", "play", 44);
- songInfo = searched.videos[0];
- song = {
- id: songInfo.videoId,
- title: Util.escapeMarkdown(songInfo.title),
- views: String(songInfo.views).padStart(10, " "),
- url: songInfo.url,
- ago: songInfo.ago,
- duration: songInfo.duration.toString(),
- img: songInfo.image,
- req: message.author,
- };
- } catch (e) {
- console.error(e);
- return client.err(message, "Music", "play", 999);
- }
- }
+ switch (res.loadType) {
+ case "NO_MATCHES":
+ if (!player.queue.current) player.destroy();
+ return message.inlineReply("No result is found");
+ case "TRACK_LOADED":
+ const playmusic = new Discord.MessageEmbed()
+ .setColor("#00f70c")
+ .setAuthor(
+ `Enqueuing:`,
+ message.client.user.displayAvatarURL({
+ dynamic: true,
+ })
+ )
+ .setDescription(`${res.tracks[0].title}`)
+ .setTimestamp();
+ player.queue.add(res.tracks[0]);
+ if (!player.playing && !player.paused && !player.queue.size)
+ player.play();
+ return message.channel.send(playmusic);
+ case "PLAYLIST_LOADED":
+ player.queue.add(res.tracks);
+ const playlist = new Discord.MessageEmbed()
+ .setColor("#00f70c")
+ .setAuthor(
+ `Enqueuing playlist:`,
+ message.client.user.displayAvatarURL({
+ dynamic: true,
+ })
+ )
+ .setDescription(
+ `${res.playlist.name}\` with ${res.tracks.length} tracks`
+ )
+ .setTimestamp();
+ if (
+ !player.playing &&
+ !player.paused &&
+ player.queue.totalSize === res.tracks.length
+ )
+ player.play();
+ return message.channel.send(playlist);
+ case "SEARCH_RESULT":
+ let max = 5,
+ collected,
+ filter = m =>
+ m.author.id === message.author.id &&
+ /^(\d+|end)$/i.test(m.content);
+ if (res.tracks.length < max) max = res.tracks.length;
- if (serverQueue) {
- serverQueue.songs.push(song);
- let thing = new MessageEmbed()
- .setAuthor(
- "Song has been added to queue",
- "https://i.imgur.com/qHPXWxN.gif"
- )
- .setThumbnail(song.img)
- .setColor("YELLOW")
- .addField("Name:", `**${song.title}**`, true)
- .addField("Duration:", `**${song.duration}**`, true)
- .addField("Requested by:", `**${song.req.tag}**`, true)
- .setFooter(`Views:${song.views} | ${song.ago}`);
- return message.channel.send(thing);
- }
+ const results = res.tracks
+ .slice(0, max)
+ .map(
+ (track, index) =>
+ `${++index} - ` + `[${track.title}](${track.uri})`
+ )
+ .join("\n");
- const queueConstruct = {
- textChannel: message.channel,
- voiceChannel: channel,
- connection: null,
- songs: [],
- volume: 80,
- playing: true,
- loop: false,
- };
- message.client.queue.set(message.guild.id, queueConstruct);
- queueConstruct.songs.push(song);
-
- const play = async song => {
- const queue = message.client.queue.get(message.guild.id);
- if (!song) {
- message.guild.me.voice.channel.leave(); //If you want your bot stay in vc 24/7 remove this line :D
- message.client.queue.delete(message.guild.id);
- return client.err(message, "Music", "play", 40);
- }
- let stream;
- let streamType;
-
- try {
- if (song.url.includes("soundcloud.com")) {
+ const searchResult = new Discord.MessageEmbed()
+ .setColor("#00f70c")
+ .setTitle("Search Results: ")
+ .setDescription(results)
+ .addField(
+ "Cancel Search: ",
+ "Type end or any other number to cancel the search",
+ true
+ )
+ .setTimestamp();
+ message.channel.send(searchResult);
try {
- stream = await scdl.downloadFormat(
- song.url,
- scdl.FORMATS.OPUS,
- config.soundcloud
+ collected = await message.channel.awaitMessages(filter, {
+ max: 1,
+ time: 30e3,
+ errors: ["time"],
+ });
+ } catch (e) {
+ if (!player.queue.current) player.destroy();
+ return message.inlineReply(
+ "You didn't provide a selection. Cancelled"
);
- } catch (error) {
- stream = await scdl.downloadFormat(
- song.url,
- scdl.FORMATS.MP3,
- config.soundcloud
- );
- streamType = "unknown";
}
- } else if (song.url.includes("youtube.com")) {
- stream = await ytdlDiscord(song.url, {
- filter: "audioonly",
- quality: "highestaudio",
- highWaterMark: 1 << 25,
- opusEncoded: true,
- });
- streamType = "opus";
- stream.on("error", function (er) {
- if (er) {
- if (queue) {
- queue.songs.shift();
- play(queue.songs[0]);
- return client.err(message, "Music", "play", 999);
- }
- }
- });
- }
- } catch (error) {
- if (queue) {
- queue.songs.shift();
- play(queue.songs[0]);
- }
+ const first = collected.first().content;
+
+ if (first.toLowerCase() === "end") {
+ if (!player.queue.current) player.destroy();
+ return message.channel.send("Cancelled selection");
+ }
+
+ const index = Number(first) - 1;
+ if (index < 0 || index > max - 1)
+ return message.inlineReply(
+ `The number that you provided too small or too big (1-${max})`
+ );
+ const track = res.tracks[index];
+ player.queue.add(track);
+ const trackadd = new Discord.MessageEmbed()
+ .setColor("#00f70c")
+ .setAuthor(
+ `Added To Queue`,
+ message.client.user.displayAvatarURL({
+ dynamic: true,
+ })
+ )
+ .setDescription(`[${track.title}](${track.uri})`)
+ .addField(`Requested By : `, `${track.requester}`, true);
+ if (!player.playing && !player.paused && !player.queue.size)
+ player.play();
+ return message.channel.send(trackadd);
}
- queue.connection.on("disconnect", () =>
- message.client.queue.delete(message.guild.id)
- );
- const dispatcher = queue.connection
- .play(stream, { type: streamType })
- .on("finish", () => {
- const shiffed = queue.songs.shift();
- if (queue.loop === true) {
- queue.songs.push(shiffed);
- }
- play(queue.songs[0]);
- });
-
- dispatcher.setVolumeLogarithmic(queue.volume / 100);
- let thing = new MessageEmbed()
- .setAuthor(`Playing song`, "https://i.imgur.com/qHPXWxN.gif")
- .setThumbnail(song.img)
- .setColor("client.color")
- .addField("Name:", `**${song.title}**`, true)
- .addField("Duration:", `**${song.duration}**`, true)
- .addField("Requested by:", `**${song.req.tag}**`, true)
- .setFooter(`Views:${song.views} | ${song.ago}`);
- queue.textChannel.send(thing);
- };
-
- try {
- const connection = await channel.join();
- queueConstruct.connection = connection;
- play(queueConstruct.songs[0]);
- } catch (error) {
+ } catch (e) {
console.log(e);
- message.client.queue.delete(message.guild.id);
- await channel.leave();
- return client.err(message, "Music", "play", 39);
}
},
};
diff --git a/commands/Music/playlist.js b/commands/Music/playlist.js
deleted file mode 100644
index 76b27dd..0000000
--- a/commands/Music/playlist.js
+++ /dev/null
@@ -1,196 +0,0 @@
-const { Client, Message, MessageEmbed, Util } = require("discord.js");
-const yts = require("yt-search");
-const ytdlDiscord = require("discord-ytdl-core");
-var ytpl = require("ytpl");
-const scdl = require("soundcloud-downloader").default;
-const config = require("../../config.json");
-module.exports = {
- name: "playlist",
- description: "Play songs",
- usage: "(YouTube Playlist URL)/(Playlist Name)",
- category: "Music",
- BotPerm: ["CONNECT", "SPEAK"],
- run: async (client, message, args) => {
- const channel = message.member.voice.channel;
- if (!channel) return client.err(message, "Music", "playlist", 35);
- const url = args[0] ? args[0].replace(/<(.+)>/g, "$1") : "";
- var searchString = args.join(" ");
- if (!searchString || !url)
- return client.err(message, "Music", "playlist", 0);
- if (url.match(/^https?:\/\/(www.youtube.com|youtube.com)\/playlist(.*)$/)) {
- try {
- const playlist = await ytpl(url.split("list=")[1]);
- if (!playlist) return client.err(messgae, "Music", "playlist", 404);
- const videos = await playlist.items;
- for (const video of videos) {
- await handleVideo(video, message, channel, true);
- }
- return message.channel.send({
- embed: {
- color: "GREEN",
- description: `✅ **|** Playlist: **\`${videos[0].title}\`** has been added to the queue`,
- },
- });
- } catch (e) {
- console.error(e);
- return client.err(message, "Music", "playlist", 999);
- }
- } else {
- try {
- var searched = await yts.search(searchString);
- if (searched.playlists.length === 0)
- return client.err(message, "Music", "playlist", 38);
- var songInfo = searched.playlists[0];
- let listurl = songInfo.listId;
- const playlist = await ytpl(listurl);
- const videos = await playlist.items;
- for (const video of videos) {
- // eslint-disable-line no-await-in-loop
- await handleVideo(video, message, channel, true); // eslint-disable-line no-await-in-loop
- }
- let thing = new MessageEmbed()
- .setAuthor(
- "Playlist has been added to queue",
- "https://i.imgur.com/qHPXWxN.gif"
- )
- .setThumbnail(songInfo.thumbnail)
- .setColor("GREEN")
- .setDescription(
- `✅ **|** Playlist: **\`${songInfo.title}\`** has been added \`${songInfo.videoCount}\` video to the queue.`
- );
- return message.channel.send(thing);
- } catch (e) {
- console.log(e);
- return client.err(message, "Music", "playlist", 999);
- }
- }
- async function handleVideo(video, message, channel, playlist = false) {
- const serverQueue = message.client.queue.get(message.guild.id);
- const song = {
- id: video.id,
- title: Util.escapeMarkdown(video.title),
- views: video.views ? video.views : "-",
- ago: video.ago ? video.ago : "-",
- duration: video.duration,
- url: `https://www.youtube.com/watch?v=${video.id}`,
- img: video.thumbnail,
- req: message.author,
- };
- if (!serverQueue) {
- const queueConstruct = {
- textChannel: message.channel,
- voiceChannel: channel,
- connection: null,
- songs: [],
- volume: 80,
- playing: true,
- loop: false,
- };
- message.client.queue.set(message.guild.id, queueConstruct);
- queueConstruct.songs.push(song);
-
- try {
- var connection = await channel.join();
- queueConstruct.connection = connection;
- play(message.guild, queueConstruct.songs[0]);
- } catch (e) {
- console.log(e);
- message.client.queue.delete(message.guild.id);
- return client.err(message, "Music", "playlist", 39);
- }
- } else {
- serverQueue.songs.push(song);
- if (playlist) return;
- let thing = new MessageEmbed()
- .setAuthor(
- "Song has been added to queue",
- "https://i.imgur.com/qHPXWxN.gif"
- )
- .setThumbnail(song.img)
- .setColor("YELLOW")
- .addField("Name:", `**${song.title}**`, true)
- .addField("Duration:", `**${song.duration}**`, true)
- .addField("Requested by:", `**${song.req.tag}**`, true)
- .setFooter(`Views:${song.views} | ${song.ago}`);
- return message.channel.send(thing);
- }
- return;
- }
-
- async function play(guild, song) {
- const serverQueue = message.client.queue.get(message.guild.id);
- if (!song) {
- message.guild.me.voice.channel.leave();
- message.client.queue.delete(message.guild.id);
- return client.err(message, "Music", "playlist", 40);
- }
- let stream;
- let streamType;
-
- try {
- if (song.url.includes("soundcloud.com")) {
- try {
- stream = await scdl.downloadFormat(
- song.url,
- scdl.FORMATS.OPUS,
- config.soundcloud
- );
- } catch (error) {
- stream = await scdl.downloadFormat(
- song.url,
- scdl.FORMATS.MP3,
- config.soundcloud
- );
- streamType = "unknown";
- }
- } else if (song.url.includes("youtube.com")) {
- stream = await ytdlDiscord(song.url, {
- filter: "audioonly",
- quality: "highestaudio",
- highWaterMark: 1 << 25,
- opusEncoded: true,
- });
- streamType = "opus";
- stream.on("error", function (er) {
- if (er) {
- if (serverQueue) {
- serverQueue.songs.shift();
- play(serverQueue.songs[0]);
- return client.err(message, "Music", "playlist", 999);
- }
- }
- });
- }
- } catch (error) {
- if (serverQueue) {
- console.log(error);
- serverQueue.songs.shift();
- play(serverQueue.songs[0]);
- }
- }
- serverQueue.connection.on("disconnect", () =>
- message.client.queue.delete(message.guild.id)
- );
- const dispatcher = serverQueue.connection
- .play(stream, { type: streamType })
- .on("finish", () => {
- const shiffed = serverQueue.songs.shift();
- if (serverQueue.loop === true) {
- serverQueue.songs.push(shiffed);
- }
- play(guild, serverQueue.songs[0]);
- });
-
- dispatcher.setVolume(serverQueue.volume / 100);
- let thing = new MessageEmbed()
- .setAuthor("Playing music", "https://i.imgur.com/qHPXWxN.gif")
- .setThumbnail(song.img)
- .setColor("BLUE")
- .addField("Name:", `**${song.title}**`, true)
- .addField("Duration:", `**${song.duration}**`, true)
- .addField("Requested by:", `**${song.req.tag}**`, true)
- .setFooter(`Views:${song.views} | ${song.ago}`);
- serverQueue.textChannel.send(thing);
- }
- },
-};
diff --git a/commands/Music/queue.js b/commands/Music/queue.js
index 4cd2499..0e3e6a9 100644
--- a/commands/Music/queue.js
+++ b/commands/Music/queue.js
@@ -1,47 +1,44 @@
-const { Client, Message, MessageEmbed } = require("discord.js");
-const util = require("../../util/pagination/pagination");
+const { MessageEmbed } = require("discord.js");
module.exports = {
name: "queue",
description: "To show the songs queue",
aliases: ["q"],
category: "Music",
- BotPerm: ["MANAGE_MESSAGES", "ADD_REACTIONS"],
run: async (client, message, args) => {
- const queue = message.client.queue.get(message.guild.id);
- if (!queue) return client.err(message, "Music", "queue", 34);
- const que = queue.songs.map(
- (t, i) => `\`${++i}.\` | [\`${t.title}\`](${t.url}) - [<@${t.req.id}>]`
- );
- const chunked = util.chunk(que, 10).map(x => x.join("\n"));
+ const player = message.client.manager.get(message.guild.id);
+ if (!player) return client.err(message, "Music", "queue", 34);
+ const queue = player.queue;
const embed = new MessageEmbed()
- .setAuthor("Songs Queue", "https://i.imgur.com/qHPXWxN.gif")
- .setThumbnail(message.guild.iconURL())
- .setColor("client.color")
- .setDescription(chunked[0])
- .addField(
- "Now Playing",
- `[${queue.songs[0].title}](${queue.songs[0].url})`,
- true
+ .setAuthor(
+ message.author.tag,
+ message.author.displayAvatarURL({ dynamic: true })
)
- .addField("Text Channel", queue.textChannel, true)
- .addField("Voice Channel", queue.voiceChannel, true)
- .setFooter(
- `Currently Server Volume is ${queue.volume} | Page 1 of ${chunked.length}.`
- );
- if (queue.songs.length === 1)
- embed.setDescription(
- `**No songs to play next. Add songs by \`\`${await client.prefix(
- message
- )}play \`\`**`
+ .setTitle(`Queue for ${message.guild.name}`)
+ .setTimestamp()
+ .setColor("RANDOM");
+ const multiple = 10;
+ const page = args.length && Number(args[0]) ? Number(args[0]) : 1;
+ const end = page * multiple;
+ const start = end - multiple;
+ const tracks = queue.slice(start, end);
+ if (queue.current)
+ embed.addField(
+ "Current",
+ `[${queue.current.title}](${queue.current.uri})`
);
- try {
- const queueMsg = await message.channel.send(embed);
- if (chunked.length > 1)
- await util.pagination(queueMsg, message.author, chunked);
- } catch (e) {
- console.log(e);
- return client.err(message, "Music", "queue", 999);
- }
+ if (!tracks.length)
+ embed.setDescription(
+ `No tracks in ${page > 1 ? `page ${page}` : "the queue"}.`
+ );
+ else
+ embed.setDescription(
+ tracks
+ .map((track, i) => `${start + ++i} - [${track.title}](${track.uri})`)
+ .join("\n")
+ );
+ const maxPages = Math.ceil(queue.length / multiple);
+ embed.setFooter(`Page ${page > maxPages ? maxPages : page} of ${maxPages}`);
+ return message.inlineReply(embed);
},
};
diff --git a/commands/Music/remove.js b/commands/Music/remove.js
deleted file mode 100644
index 400ae09..0000000
--- a/commands/Music/remove.js
+++ /dev/null
@@ -1,30 +0,0 @@
-const { Client, Message, MessageEmbed } = require("discord.js");
-module.exports = {
- name: "remove",
- description: "Remove song from the queue",
- usage: "(Number)",
- aliases: ["rm"],
- category: "Music",
- run: async (client, message, args) => {
- const queue = message.client.queue.get(message.guild.id);
- if (!queue) return client.err(message, "Music", "remove", 37);
- if (!args.length) return client.err(message, "Music", "remove", 101);
- if (isNaN(args[0])) return client.err(message, "Music", "remove", 7);
- if (queue.songs.length == 1)
- return client.err(message, "Music", "remove", 37);
- if (args[0] > queue.songs.length)
- return client.err(message, "Music", "remove", 101);
- try {
- const embed = new MessageEmbed()
- .setColor(client.color)
- .setDescription(`❌ **|** Removed: **${song[0].title}** from the queue`)
- .setTimestamp(`Made by ${client.author}`);
- const song = queue.songs.splice(args[0] - 1, 1);
- message.inlineReply(embed);
- message.react("✅");
- } catch (e) {
- console.log(e);
- return client.err(message, "Music", "remove", 999);
- }
- },
-};
diff --git a/commands/Music/resume.js b/commands/Music/resume.js
index 5208686..17e4d76 100644
--- a/commands/Music/resume.js
+++ b/commands/Music/resume.js
@@ -1,24 +1,17 @@
-const { Client, Message, MessageEmbed } = require("discord.js");
module.exports = {
name: "resume",
- description: "To resume the paused music",
- aliases: ["continue"],
+ description: "Pauses the current playing music",
category: "Music",
-
run: async (client, message, args) => {
- const serverQueue = message.client.queue.get(message.guild.id);
- if (serverQueue && !serverQueue.playing) {
- serverQueue.playing = true;
- serverQueue.connection.dispatcher.resume();
- let xd = new MessageEmbed()
- .setDescription(`▶ Resumed the music for ${message.author.username}`)
- .setColor("YELLOW")
- .setAuthor(
- "Music has been resumed.",
- "https://i.imgur.com/qHPXWxN.gif"
- );
- return message.channel.send(xd);
- }
- return client.err(message, "Music", "resume", 34);
+ const player = message.client.manager.get(message.guild.id);
+ if (!player) return client.err(message, "Music", "resume", 34);
+ const { channel } = message.member.voice;
+ if (!channel) return client.err(message, "Music", "resume", 35);
+ if (channel.id !== player.voiceChannel)
+ return client.err(message, "Music", "resume", 55);
+ if (player.paused == false)
+ return message.inlineReply("The player is already playing");
+ player.pause(false);
+ return message.inlineReply("The player is resumed");
},
};
diff --git a/commands/Music/seek.js b/commands/Music/seek.js
new file mode 100644
index 0000000..bd4b140
--- /dev/null
+++ b/commands/Music/seek.js
@@ -0,0 +1,103 @@
+const { MessageEmbed } = require("discord.js");
+
+module.exports = {
+ name: "seek",
+ description: "seek the current playing music",
+ category: "Music",
+ usage: "(Number)",
+ run: async (client, message, args) => {
+ try {
+ function createBar(player) {
+ try {
+ if (!player.queue.current)
+ return `**[""🔘""▬".repeat(size - 1)}]**\n**00:00:00 / 00:00:00**`;
+ let current =
+ player.queue.current.duration !== 0
+ ? player.position
+ : player.queue.current.duration;
+ let total = player.queue.current.duration;
+ let size = 15;
+ let bar =
+ String("| ") +
+ String("🔘").repeat(Math.round(size * (current / total))) +
+ String("▬").repeat(size - Math.round(size * (current / total))) +
+ String(" |");
+ return `**${bar}**\n**${
+ new Date(player.position).toISOString().substr(11, 8) +
+ " / " +
+ (player.queue.current.duration == 0
+ ? " ◉ LIVE"
+ : new Date(player.queue.current.duration)
+ .toISOString()
+ .substr(11, 8))
+ }**`;
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ function format(millis) {
+ try {
+ var h = Math.floor(millis / 3600000),
+ m = Math.floor(millis / 60000),
+ s = ((millis % 60000) / 1000).toFixed(0);
+ if (h < 1)
+ return (
+ (m < 10 ? "0" : "") +
+ m +
+ ":" +
+ (s < 10 ? "0" : "") +
+ s +
+ " | " +
+ Math.floor(millis / 1000) +
+ " Seconds"
+ );
+ else
+ return (
+ (h < 10 ? "0" : "") +
+ h +
+ ":" +
+ (m < 10 ? "0" : "") +
+ m +
+ ":" +
+ (s < 10 ? "0" : "") +
+ s +
+ " | " +
+ Math.floor(millis / 1000) +
+ " Seconds"
+ );
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ const player = message.client.manager.get(message.guild.id);
+ if (
+ Number(args[0]) < 0 ||
+ Number(args[0]) >= player.queue.current.duration / 1000
+ )
+ return message.channel.send(
+ new MessageEmbed()
+ .setColor("RED")
+ .setTitle(
+ ` Error | You may seek from \`0\` - \`${player.queue.current.duration}\``
+ )
+ .setAuthor(
+ message.author.tag,
+ message.author.displayAvatarURL({ dynamic: true })
+ )
+ .setTimestamp()
+ .setFooter(`Made by ${client.author}`)
+ );
+
+ player.seek(Number(args[0]) * 1000);
+ return message.channel.send(
+ new MessageEmbed()
+ .setTitle(`Seeked song to: ${format(Number(args[0]) * 1000)}`)
+ .addField(`Progress: `, createBar(player))
+ .setColor("GREEN")
+ );
+ } catch (e) {
+ console.log(e);
+ return client.err(message, "Music", "seek", 999);
+ }
+ },
+};
diff --git a/commands/Music/shuffle.js b/commands/Music/shuffle.js
deleted file mode 100644
index 1035498..0000000
--- a/commands/Music/shuffle.js
+++ /dev/null
@@ -1,24 +0,0 @@
-const { Client, Message, MessageEmbed } = require("discord.js");
-module.exports = {
- name: "shuffle",
- description: "Shuffle queue",
- category: "Music",
- run: async (client, message, args) => {
- const serverQueue = message.client.queue.get(message.guild.id);
- if (!serverQueue) return client.err(message, "Music", "shuffle", 37);
- try {
- let songs = serverQueue.songs;
- for (let i = songs.length - 1; i > 1; i--) {
- let j = 1 + Math.floor(Math.random() * i);
- [songs[i], songs[j]] = [songs[j], songs[i]];
- }
- serverQueue.songs = songs;
- message.client.queue.set(message.guild.id, serverQueue);
- message.react("✅");
- } catch (error) {
- message.guild.me.voice.channel.leave();
- message.client.queue.delete(message.guild.id);
- return client.err(message, "Music", "shuffle", 36);
- }
- },
-};
diff --git a/commands/Music/skip.js b/commands/Music/skip.js
index c4b09f9..87eb17b 100644
--- a/commands/Music/skip.js
+++ b/commands/Music/skip.js
@@ -1,32 +1,18 @@
-const { Client, Message, MessageEmbed } = require("discord.js");
module.exports = {
name: "skip",
- description: "To skip the current music",
+ aliases: ["sk"],
+ description: "Skips the current playing music",
category: "Music",
run: async (client, message, args) => {
- const channel = message.member.voice.channel;
+ const player = message.client.manager.get(message.guild.id);
+ if (!player) return client.err(message, "Music", "skip", 34);
+ const { channel } = message.member.voice;
if (!channel) return client.err(message, "Music", "skip", 35);
- const serverQueue = message.client.queue.get(message.guild.id);
- if (!serverQueue) return client.err(message, "Music", "skip", 34);
- if (!serverQueue.connection) return;
- if (!serverQueue.connection.dispatcher) return;
- if (serverQueue && !serverQueue.playing) {
- serverQueue.playing = true;
- serverQueue.connection.dispatcher.resume();
- let xd = new MessageEmbed()
- .setDescription(`▶ Skipped the music for ${message.author.username}`)
- .setColor("YELLOW")
- .setTitle("Music has been skipped");
- return message.channel.send(xd).catch(err => console.log(err));
- }
-
- try {
- serverQueue.connection.dispatcher.end();
- } catch (error) {
- serverQueue.voiceChannel.leave();
- message.client.queue.delete(message.guild.id);
- return client.err(message, "Music", "skip", 36);
- }
- message.react("✅");
+ if (channel.id !== player.voiceChannel)
+ return client.err(message, "Music", "skip", 55);
+ if (!player.queue.current) return client.err(message, "Music", "skip", 34);
+ const { title } = player.queue.current;
+ player.stop();
+ return message.inlineReply(`**${title}** was skipped`);
},
};
diff --git a/commands/Music/skipto.js b/commands/Music/skipto.js
deleted file mode 100644
index 2cb8da0..0000000
--- a/commands/Music/skipto.js
+++ /dev/null
@@ -1,41 +0,0 @@
-const { Client, Message, MessageEmbed } = require("discord.js");
-module.exports = {
- name: "skipto",
- description: "Skip to the selected queue number",
- usage: "(Number)",
- category: "Music",
- run: async (client, message, args) => {
- if (!args.length || isNaN(args[0]))
- return client.err(message, "Music", "skipto", 101);
- const queue = message.client.queue.get(message.guild.id);
- if (!queue) return client.err(message, "Music", "skipto", 37);
- if (args[0] > queue.songs.length)
- return client.err(message, "Music", "skipto", 101);
- queue.playing = true;
-
- if (queue.loop) {
- for (let i = 0; i < args[0] - 2; i++) {
- queue.songs.push(queue.songs.shift());
- }
- } else {
- queue.songs = queue.songs.slice(args[0] - 2);
- }
- try {
- queue.connection.dispatcher.end();
- } catch (error) {
- queue.voiceChannel.leave();
- message.client.queue.delete(message.guild.id);
- return client.err(message, "Music", "skipto", 36);
- }
-
- queue.textChannel
- .send({
- embed: {
- color: "GREEN",
- description: `${message.author} ⏭ skipped ${args[0] - 1} songs`,
- },
- })
- .catch(console.error);
- message.react("✅");
- },
-};
diff --git a/commands/Music/stop.js b/commands/Music/stop.js
index 242c3ca..3d29023 100644
--- a/commands/Music/stop.js
+++ b/commands/Music/stop.js
@@ -1,24 +1,17 @@
-const { Client, Message, MessageEmbed } = require("discord.js");
module.exports = {
name: "stop",
+ aliases: ["dc"],
description: "To stop the music and clear the queue",
category: "Music",
run: async (client, message, args) => {
- const channel = message.member.voice.channel;
+ const player = message.client.manager.get(message.guild.id);
+ if (!player) return client.err(message, "Music", "stop", 34);
+ const { channel } = message.member.voice;
if (!channel) return client.err(message, "Music", "stop", 35);
- const serverQueue = message.client.queue.get(message.guild.id);
- if (!serverQueue) return client.err(message, "Music", "stop", 34);
- if (!serverQueue.connection) return;
- if (!serverQueue.connection.dispatcher) return;
- try {
- serverQueue.connection.dispatcher.end();
- } catch (error) {
- message.guild.me.voice.channel.leave();
- message.client.queue.delete(message.guild.id);
- return client.err(message, "Music", "stop", 36);
- }
- message.client.queue.delete(message.guild.id);
- serverQueue.songs = [];
+ if (channel.id !== player.voiceChannel)
+ return client.err(message, "Music", "stop", 55);
+ player.destroy();
message.react("✅");
+ return message.inlineReply("The player has been destroyed");
},
};
diff --git a/commands/Music/volume.js b/commands/Music/volume.js
index 952ff07..ca90d16 100644
--- a/commands/Music/volume.js
+++ b/commands/Music/volume.js
@@ -1,30 +1,25 @@
-const { Client, Message, MessageEmbed } = require("discord.js");
module.exports = {
name: "volume",
description: "To change the server song queue volume",
usage: "(Number)",
- aliases: ["vol"],
+ aliases: ["vol", "v"],
category: "Music",
+ description: "Set volume level of the music",
run: async (client, message, args) => {
- const channel = message.member.voice.channel;
+ const player = message.client.manager.get(message.guild.id);
+ if (!player) return client.err(message, "Music", "volume", 34);
+ if (!args.length)
+ return message.inlineReply(`The player volume is \`${player.volume}\``);
+ const { channel } = message.member.voice;
if (!channel) return client.err(message, "Music", "volume", 35);
- const serverQueue = message.client.queue.get(message.guild.id);
- if (!serverQueue) return client.err(message, "Music", "volume", 34);
- if (!serverQueue.connection)
- return client.err(message, "Music", "volume", 34);
- if (!args[0])
- return message.channel.send(
- `The current volume is: **${serverQueue.volume}**`
- );
- if (isNaN(args[0])) return client.err(message, "Music", "volume", 101);
- if (parseInt(args[0]) > 150 || args[0] < 0)
+ if (channel.id !== player.voiceChannel)
+ return client.err(message, "Music", "volume", 55);
+ const volume = Number(args[0]);
+ if (!volume || volume < 1 || volume > 100 || isNaN(volume))
return client.err(message, "Music", "volume", 101);
- serverQueue.volume = args[0];
- serverQueue.connection.dispatcher.setVolumeLogarithmic(args[0] / 100);
- let xd = new MessageEmbed()
- .setDescription(`Tuned the volume to: **${args[0] / 1}/100**`)
- .setAuthor("Server Volume Manager", "https://i.imgur.com/qHPXWxN.gif")
- .setColor("client.color");
- return message.channel.send(xd);
+ player.setVolume(volume);
+ return message.inlineReply(
+ `The player's volume has been set to \`${volume}\`.`
+ );
},
};
diff --git a/commands/Owner/accept.js b/commands/Owner/accept.js
index 97a6158..a113cfa 100644
--- a/commands/Owner/accept.js
+++ b/commands/Owner/accept.js
@@ -10,7 +10,7 @@ module.exports = {
const acceptQuery =
args.slice(1).join(" ") || `They didn't leave any message.`;
- if (!MessageID) return message.reply("Please specify a valid ID");
+ if (!MessageID) return message.inlineReply("Please specify a valid ID");
try {
const suggestionChannel = message.guild.channels.cache.get(
client.SuggestionLog
diff --git a/commands/Owner/add.js b/commands/Owner/add.js
index 6034b07..029bab0 100644
--- a/commands/Owner/add.js
+++ b/commands/Owner/add.js
@@ -9,7 +9,7 @@ module.exports = {
if (!args[0] || isNaN(args[0]))
return message.channel.send("Number of coins?");
const user = message.mentions.members.first() || message.author;
- client.data.add(user.id, parseInt(args[0]));
+ client.add(user.id, parseInt(args[0]), message);
message.react("");
},
};
diff --git a/commands/Owner/deny.js b/commands/Owner/deny.js
index 7165a6d..a620c81 100644
--- a/commands/Owner/deny.js
+++ b/commands/Owner/deny.js
@@ -10,7 +10,7 @@ module.exports = {
const denyQuery =
args.slice(1).join(" ") || `They didn't leave any message.`;
- if (!MessageID) return message.reply("Please specify a valid ID");
+ if (!MessageID) return message.inlineReply("Please specify a valid ID");
try {
const suggestionChannel = message.guild.channels.cache.get(
client.SuggestionLog
diff --git a/commands/Owner/edit.js b/commands/Owner/edit.js
new file mode 100644
index 0000000..961b2ab
--- /dev/null
+++ b/commands/Owner/edit.js
@@ -0,0 +1,58 @@
+const { Client, Message, MessageEmbed } = require("discord.js");
+
+module.exports = {
+ name: "edit",
+ /**
+ * @param {Client} client
+ * @param {Message} message
+ * @param {String[]} args
+ */
+ run: async (client, message, args) => {
+ const embed = new MessageEmbed()
+ .setAuthor(
+ "Ń1ght and Cath Nation",
+ message.guild.iconURL({ dynamic: true, size: 4096 })
+ )
+ .setColor(client.color)
+ .setDescription(
+ "*Welcome to Ń1ght and Cath Nation*.\n**Please get a role below by reacting!**\n**[Invite](https://discord.com/api/oauth2/authorize?client_id=800966959268364288&permissions=4231314550&scope=bot%20applications.commands) | [Support](https://discord.gg/SbQHChmGcp) | [YouTube](https://youtube.com/c/Kirito01) | [Website](https://www.cath.gq)**"
+ )
+ .addFields(
+ {
+ name: "Gold<:gold:841194046419370024>",
+ value: "<@&841200768706543636>",
+ inline: true,
+ },
+ {
+ name: "Platinum<:platinum:841194040165924865>",
+ value: "<@&840536973126270976>",
+ inline: true,
+ },
+ {
+ name: "Updates<:Update:841196992385253408>",
+ value: "<@&841200845885538325>",
+ inline: true,
+ },
+ {
+ name: "Announcements<:announce_dark:841195615458951168>",
+ value: "<@&841026716181069824>",
+ inline: false,
+ },
+ {
+ name: "YouTube<:YouTube:841186450497339412>",
+ value: "<@&841026772790673448>",
+ inline: true,
+ }
+ )
+ .setThumbnail(client.user.displayAvatarURL())
+ .setURL(client.web)
+ .setFooter(
+ "Ń1ght#0001",
+ message.author.displayAvatarURL({ dynamic: true, size: 4096 })
+ )
+ .setTimestamp();
+ const ch = message.guild.channels.cache.get(message.channel.id);
+ const msgs = await ch.messages.fetch(args[0]);
+ msgs.edit("", embed);
+ },
+};
diff --git a/commands/Owner/reaction-role.js b/commands/Owner/reaction-role.js
index 9cc3cbc..a9efc08 100644
--- a/commands/Owner/reaction-role.js
+++ b/commands/Owner/reaction-role.js
@@ -6,7 +6,7 @@ module.exports = {
const embed = new MessageEmbed()
.setAuthor(
"Ń1ght and Cath Nation",
- "https://images-ext-2.discordapp.net/external/JyjN4pXpaLIaSOSszAR9dyp03Hf3ouzjUb8kRa0OFiE/%3Fsize%3D2048/https/cdn.discordapp.com/icons/718762019586572341/c35c387563c7527f056276f2a16f526b.webp"
+ message.guild.iconURL({ dynamic: true, size: 4096 })
)
.setColor(client.color)
.setDescription(
@@ -43,7 +43,7 @@ module.exports = {
.setURL(client.web)
.setFooter(
"Ń1ght#0001",
- "https://images-ext-2.discordapp.net/external/JyjN4pXpaLIaSOSszAR9dyp03Hf3ouzjUb8kRa0OFiE/%3Fsize%3D2048/https/cdn.discordapp.com/icons/718762019586572341/c35c387563c7527f056276f2a16f526b.webp"
+ message.author.displayAvatarURL({ dynamic: true, size: 4096 })
)
.setTimestamp();
message.channel.send(embed);
diff --git a/commands/Owner/rmv.js b/commands/Owner/rmv.js
index b9d446a..b3b24be 100644
--- a/commands/Owner/rmv.js
+++ b/commands/Owner/rmv.js
@@ -9,7 +9,7 @@ module.exports = {
if (!args[0] || isNaN(args[0]))
return message.channel.send("Number of coins?");
const user = message.mentions.members.first() || message.author;
- client.data.rmv(user.id, parseInt(args[0]));
+ await client.rmv(user.id, parseInt(args[0]));
message.react("");
},
};
diff --git a/commands/Owner/test.js b/commands/Owner/test.js
new file mode 100644
index 0000000..dfbc8bb
--- /dev/null
+++ b/commands/Owner/test.js
@@ -0,0 +1,32 @@
+// const { Client, Message, MessageEmbed } = require("discord.js");
+// const db = require("../../models/bot");
+// module.exports = {
+// name: "test",
+// Owner: true,
+// /**
+// * @param {Client} client
+// * @param {Message} message
+// * @param {String[]} args
+// */
+// run: async (client, message, args) => {
+// db.findOne({ Bot: client.user.id }, async (err, data) => {
+// let cmdstatus;
+// if (!data) {
+// return;
+// } else {
+// data.Commands.map(x => {
+// const arr = Object.values(x.commands);
+// const finded = arr.find(a => a.name == args[0].toLowerCase());
+// if (!finded) return;
+// else cmdstatus = finded.status;
+// });
+// data.Commands.commands.status = false;
+
+// if (cmdstatus === true) {
+// cmdstatus = false;
+// await db.findOneAndUpdate({ Bot: client.user.id }, data);
+// }
+// }
+// });
+// },
+// };
diff --git a/commands/Owner/try.js b/commands/Owner/try.js
index 29623e4..94be805 100644
--- a/commands/Owner/try.js
+++ b/commands/Owner/try.js
@@ -27,7 +27,6 @@ module.exports = {
collector.stop("fulfilled");
});
- const chan = client.channels.cache.get(Suggestion);
collector.on("end", (collected, reason) => {
if (reason === "fulfilled") {
const msss = collected.map(msg => {
@@ -52,7 +51,7 @@ module.exports = {
}
});
} catch (err) {
- message.channel.send(`Please enable your DM allowance`);
+ console.log(err);
}
},
};
diff --git a/commands/Utilities/emojiadd.js b/commands/Utilities/emojiadd.js
index 913c4b8..fb7e0d8 100644
--- a/commands/Utilities/emojiadd.js
+++ b/commands/Utilities/emojiadd.js
@@ -1,7 +1,7 @@
const { Client, Message, MessageEmbed, Util } = require("discord.js");
module.exports = {
name: "emojiadd",
- usage: "(Link/Photo)",
+ usage: "(Link/Photo) (Name)",
aliases: ["addemoji"],
description: "Show an emoji URL or add the emoji to the server",
category: "Utilities",
diff --git a/commands/Utilities/esnipe.js b/commands/Utilities/esnipe.js
index b366cb1..e79613c 100644
--- a/commands/Utilities/esnipe.js
+++ b/commands/Utilities/esnipe.js
@@ -15,7 +15,7 @@ module.exports = {
page = 0,
reactions = ["◀️", "⏪", "⏩", "▶️"];
if (!snipes)
- return message.reply(
+ return message.inlineReply(
`No snipes have been found for the channel \`${channel.name}\``
);
diff --git a/commands/Utilities/messageinfo.js b/commands/Utilities/messageinfo.js
new file mode 100644
index 0000000..12196dc
--- /dev/null
+++ b/commands/Utilities/messageinfo.js
@@ -0,0 +1,30 @@
+const { MessageEmbed } = require("discord.js");
+module.exports = {
+ name: "messageinfo",
+ run: async (client, message, args) => {
+ try {
+ if (!args[0]) return client.err(message, "Utilities", "Fun", 27);
+ await message.channel.messages.fetch(args[0]).catch(err => {
+ return message.inlineReply("Message not found in this channel..");
+ });
+ const msg = await message.channel.messages.cache.get(args[0]);
+ console.log(msg);
+ const hasImage = msg.attachments.size && msg.attachments.first().width;
+ const embed = new MessageEmbed()
+ .setColor(msg.member ? msg.member.displayHexColor : client.color)
+ .setImage(hasImage ? msg.attachments.first().url : null)
+ .setAuthor(
+ msg.author.tag,
+ msg.author.displayAvatarURL({ format: "png", dynamic: true })
+ )
+ .addField("Content", msg.content)
+ .setTimestamp(msg.createdAt)
+ .addField("ID", msg.id)
+ .setFooter(`Made by ${client.author}`)
+ .addField("Jump", `[Click Here to Jump](${msg.url})`);
+ return message.inlineReply(embed);
+ } catch (err) {
+ console.log(err);
+ }
+ },
+};
diff --git a/commands/Utilities/modmail.js b/commands/Utilities/modmail.js
index a806a9a..cb487db 100644
--- a/commands/Utilities/modmail.js
+++ b/commands/Utilities/modmail.js
@@ -132,7 +132,7 @@ module.exports = {
}
});
} catch {
- return message.reply("please let me send DM to you.");
+ return message.inlineReply("please let me send DM to you.");
}
},
};
diff --git a/commands/Utilities/ping.js b/commands/Utilities/ping.js
new file mode 100644
index 0000000..ec3126a
--- /dev/null
+++ b/commands/Utilities/ping.js
@@ -0,0 +1,28 @@
+const { MessageEmbed } = require("discord.js");
+module.exports = {
+ name: "ping",
+ description: "Check bot latency to Discord API",
+ run: async (client, message, args) => {
+ const msg = await message.channel.send("Pinging...");
+ const messageping = msg.createdTimestamp - message.createdTimestamp;
+ const Embed = new MessageEmbed()
+ .setTitle("🏓 Pong!")
+ .setAuthor(
+ `${message.author.username}`,
+ message.author.displayAvatarURL()
+ )
+ .setDescription(
+ `📨 • **Message Latency** \`${Math.floor(
+ messageping
+ )}ms\`\n🛰️ • **Bot Latency** \`${Math.round(client.ws.ping)}ms\``
+ )
+ .setColor(
+ messageping < 350
+ ? "GREEN"
+ : messageping < 500 && messageping > 350
+ ? "YELLOW"
+ : "RED"
+ );
+ msg.edit("", Embed);
+ },
+};
diff --git a/commands/Utilities/poll.js b/commands/Utilities/poll.js
index 16eb549..27a8d19 100644
--- a/commands/Utilities/poll.js
+++ b/commands/Utilities/poll.js
@@ -1,75 +1,24 @@
-const { Client, Message, MessageEmbed } = require("discord.js");
-const { Suggestion } = require("../../config.json");
+const { MessageEmbed } = require("discord.js");
module.exports = {
name: "poll",
- description: "Join a poll for develop of this bot",
+ description: "Start a poll in a channel",
category: "Utilities",
+ Owner: true,
run: async (client, message, args) => {
- const questions = [
- "Which statistic of gun you want to see?",
- //"question 2"
- ];
- let collectCounter = 0;
- let endCounter = 0;
- const filter = m => m.author.id === message.author.id;
- message.reply("check your dm.");
- const appStart = await message.author.send(
- new MessageEmbed()
- .setAuthor(message.author.username, message.author.displayAvatarURL())
- .setDescription(questions[collectCounter++])
- .setFooter(client.user.username)
- .setTimestamp()
- );
- const channel = appStart.channel;
-
- const collector = channel.createMessageCollector(filter);
-
- collector.on("collect", () => {
- if (collectCounter < questions.length) {
- channel.send(
- new MessageEmbed()
- .setAuthor(
- message.author.username,
- message.author.displayAvatarURL()
- )
- .setDescription(questions[collectCounter++])
- .setFooter(client.user.username)
- .setTimestamp()
- );
- } else {
- channel.send(
- new MessageEmbed()
- .setTitle("SUCCESS!")
- .setDescription("You have joined the poll.")
- .setColor("GREEN")
- );
- collector.stop("fulfilled");
- }
- });
-
- const appsChannel = client.channels.cache.get(Suggestion);
- collector.on("end", (collected, reason) => {
- if (reason === "fulfilled") {
- let index = 1;
- const mapedResponses = collected
- .map(msg => {
- return `${questions[endCounter++]}**\n->** ${msg.content}`;
- })
- .join("\n\n");
-
- appsChannel.send(
- new MessageEmbed()
- .setAuthor(
- message.author.tag,
- message.author.displayAvatarURL({ dynamic: true })
- )
- .setTitle("New Apllication")
-
- .setDescription(mapedResponses)
- .setColor("ORANGE")
- .setTimestamp()
- );
- }
- });
+ let pollDescription = `
+ ${message.author} asks: ${args.slice(1).join(" ")}
+ `;
+ const channel = message.mentions.channels.first();
+ if (!channel) return client.err(message, "Utilities", "poll", 28);
+ if (!pollDescription) return client.err(message, "Utilities", "poll", 12);
+ let embedPoll = new MessageEmbed()
+ .setTitle(`${message.author.username} made a poll`)
+ .setDescription(pollDescription)
+ .setFooter(`Made by ${client.author}`)
+ .setTimestamp()
+ .setColor("GREEN");
+ let msgEmbed = await channel.send(embedPoll);
+ await msgEmbed.react("👍");
+ await msgEmbed.react("👎");
},
};
diff --git a/commands/Utilities/rank.js b/commands/Utilities/rank.js
index d82be31..e043d8d 100644
--- a/commands/Utilities/rank.js
+++ b/commands/Utilities/rank.js
@@ -7,6 +7,7 @@ module.exports = {
usage: "{User}",
timeout: 5000,
category: "Utilities",
+ Level: true,
run: async (client, message, args) => {
if (!message.guild) return;
if (message.author.bot) return;
diff --git a/commands/Utilities/report.js b/commands/Utilities/report.js
index e197356..a01c4ce 100644
--- a/commands/Utilities/report.js
+++ b/commands/Utilities/report.js
@@ -1,5 +1,4 @@
const { Client, Message, MessageEmbed } = require("discord.js");
-require("../../inlinereply");
module.exports = {
name: "report",
diff --git a/commands/Utilities/servericon.js b/commands/Utilities/servericon.js
index 578b309..a2fcdc0 100644
--- a/commands/Utilities/servericon.js
+++ b/commands/Utilities/servericon.js
@@ -9,7 +9,7 @@ module.exports = {
.setTitle(`Icon of ${message.guild.name}`)
.setURL(client.web)
.setTimestamp()
- .setFooter(`Requested by ${message.authpr.tag}`)
+ .setFooter(`Requested by ${message.author.tag}`)
.setImage(message.guild.iconURL({ dynamic: true, size: 2048 }));
message.inlineReply(Embed);
},
diff --git a/commands/Utilities/serverinfo.js b/commands/Utilities/serverinfo.js
index a3dca6d..5d36ff3 100644
--- a/commands/Utilities/serverinfo.js
+++ b/commands/Utilities/serverinfo.js
@@ -69,6 +69,9 @@ module.exports = {
)} ${moment(message.guild.createdTimestamp).format("LL")} ${moment(
message.guild.createdTimestamp
).fromNow()}`,
+ `**❯ Community Features:** ${
+ message.guild.features.join(", ") || "No Community Features!"
+ }`,
"\u200b",
])
.addField("Statistics", [
diff --git a/config.json b/config.json
index 6e76eee..3184405 100644
--- a/config.json
+++ b/config.json
@@ -1,12 +1,12 @@
{
"prefix": "C.",
- "mongo": "mongodb://127.0.0.1:27017/cath",
+ "mongo": "mongodb://127.0.0.1:27017/test",
"URL": "https://cath.gq/",
"color": "02023a",
- "soundcloud": "dmDh7QSlmGpzH9qQoH1YExYCGcyYeYYC",
- "ca": "**[Invite](https://discord.com/api/oauth2/authorize?client_id=800966959268364288&permissions=4231314550&scope=bot%20applications.commands) | [Support](https://discord.gg/SbQHChmGcp) | [YouTube](https://youtube.com/Kirito01) | [Website](https://www.cath.gq)**",
+ "ca": "**[Invite](https://discord.com/api/oauth2/authorize?client_id=800966959268364288&permissions=mongodb+srv://cath_exe:SKS_2021@cath-exe.iolb7.mongodb.net/Data4231314550&scope=bot%20applications.commands) | [Support](https://discord.gg/SbQHChmGcp) | [YouTube](https://youtube.com/Kirito01) | [Website](https://www.cath.gq)**",
"cat": "**[Invite](https://discord.com/api/oauth2/authorize?client_id=800966959268364288&permissions=4231314550&scope=bot%20applications.commands) | [Support](https://discord.gg/SbQHChmGcp) | [YouTube](https://youtube.com/Kirito01) | [Website](https://www.cath.gq)**\n\n",
"Suggestion": "853319776034226186",
"Report": "853319776034226186",
- "Welcome": "837913442228371456"
+ "Welcome": "837913442228371456",
+ "DM": "850434924536135690"
}
diff --git a/events/level.js b/events/level.js
index 8dfa72f..405d2a3 100644
--- a/events/level.js
+++ b/events/level.js
@@ -1,10 +1,12 @@
const Levels = require("discord-xp");
const client = require("../bot");
-const users = require("../models/users");
-Levels.setURL(require("../config.json").mongo);
+require("dotenv").config();
+Levels.setURL(process.env.MONGO);
client.on("message", async message => {
if (!message.guild) return;
if (message.author.bot) return;
+ const guild = await client.data.getGuild(message.guild.id);
+ if (guild.Level == false) return;
const user = await client.data.getUser(message.author.id);
var max = 30;
if (user) {
@@ -15,7 +17,6 @@ client.on("message", async message => {
}
}
const randomAmountOfXp = client.function.rndint(10, max);
- if (client.xp.includes(message.guild.id)) return;
const hasLeveledUp = await Levels.appendXp(
message.author.id,
message.guild.id,
diff --git a/events/log.js b/events/log.js
index e69de29..279b480 100644
--- a/events/log.js
+++ b/events/log.js
@@ -0,0 +1,447 @@
+// const Discord = require("discord.js");
+// const Guild = require("../models/guilds");
+// const client = require("../bot");
+// let types = {
+// text: "Text Channel",
+// voice: "Voice Channel",
+// null: "No Type",
+// news: "News Channel",
+// store: "Store Channel",
+// category: "Category",
+// };
+// client.on("channelCreate", async channel => {
+// send_log(
+// client,
+// channel.guild,
+// "GREEN",
+// "Channel Created",
+// `Channel Name: \`${channel.name}\`\nChannel ID: \`${
+// channel.id
+// }\`\nChannel Type: \`${types[channel.type]}\`\nChannel Position: \`${
+// channel.rawPosition
+// }\``
+// );
+// });
+// client.on("channelDelete", async channel => {
+// send_log(
+// client,
+// channel.guild,
+// "RED",
+// "Channel Deleted",
+// `Channel Name: \`${channel.name}\`\nChannel ID: \`${
+// channel.id
+// }\`\nChannel Type: \`${types[channel.type]}\`\nChannel Position: \`${
+// channel.rawPosition
+// }\``
+// );
+// });
+// client.on("channelPinsUpdate", async (channel, time) => {
+// send_log(
+// client,
+// channel.guild,
+// "YELLOW",
+// "Channel Pins Update",
+// `Channel Name: \`${channel.name}\`\nChannel ID: \`${
+// channel.id
+// }\`\nPinned at \`${time.toLocaleString()}\``,
+// "https://i.stack.imgur.com/d1JEp.png"
+// );
+// });
+// client.on("channelUpdate", function (oldChannel, newChannel) {
+// let newCat = newChannel.parent ? newChannel.parent.name : "NO PARENT";
+// let guildChannel = newChannel.guild;
+// if (!guildChannel || !guildChannel.available) return;
+// if (oldChannel.name != newChannel.name) {
+// send_log(
+// client,
+// oldChannel.guild,
+// "YELLOW",
+// "Channel Updated - Name",
+// `Channel Name: \`${oldChannel.name}\`\nChannel Id: \`${oldChannel.id}\`\n\n` +
+// `Channel Name: \`${newChannel.name}\`\nChannel Id: \`${newChannel.id}\``
+// );
+// } else if (oldChannel.type != newChannel.type) {
+// send_log(
+// client,
+// oldChannel.guild,
+// "YELLOW",
+// "Channel Updated - Type",
+// `Channel Name: \`${oldChannel.name}\`\nChannel Id: \`${
+// oldChannel.id
+// }\`\nChannelTYPE: \`${types[oldChannel.type]}\`\n\n` +
+// `Channel Name: \`${newChannel.name}\`\nChannel Id: \`${
+// newChannel.id
+// }\`\nChannelTYPE: \`${types[newChannel.type]}\``
+// );
+// } else if (oldChannel.topic != newChannel.topic) {
+// send_log(
+// client,
+// oldChannel.guild,
+// "YELLOW",
+// "Channel UPDATED - TOPIC",
+// `Channel Name: \`${oldChannel.name}\`\nChannel Id: \`${oldChannel.id}\`\nChannelTOPIC: \`${oldChannel.topic}\`\n\n` +
+// `Channel Name: \`${newChannel.name}\`\nChannel Id: \`${newChannel.id}\`\nChannelTOPIC: \`${newChannel.topic}\``
+// );
+// }
+// });
+// client.on("emojiCreate", function (emoji) {
+// send_log(
+// client,
+// emoji.guild,
+// "GREEN",
+// "EMOJI CREATED",
+// `EMOJI: ${emoji}\nEMOJINAME: ${emoji.name}\nEMOJIID: ${emoji.id}\nEMOJIURL: ${emoji.url}`
+// );
+// });
+// client.on("emojiDelete", function (emoji) {
+// send_log(
+// client,
+// emoji.guild,
+// "RED",
+// "EMOJI DELETED",
+// `EMOJI: ${emoji}\nEMOJINAME: ${emoji.name}\nEMOJIID: ${emoji.id}\nEMOJIURL: ${emoji.url}`
+// );
+// });
+
+// client.on("emojiUpdate", function (oldEmoji, newEmoji) {
+// if (oldEmoji.name !== newEmoji.name) {
+// send_log(
+// client,
+// oldEmoji.guild,
+// "ORANGE",
+// "EMOJI NAME CHANGED",
+// `__Emoji: ${newEmoji}__ \n\n**Before:** \`${oldEmoji.name}\`\n**After:** \`${newEmoji.name}\`\n**Emoji ID:** \`${newEmoji.id}\``
+// );
+// }
+// });
+
+// client.on("guildBanAdd", function (guild, user) {
+// send_log(
+// client,
+// guild,
+// "RED",
+// "USER BANNED",
+// `User: ${user} (\`${user.id}\`)\n\`${user.tag}\``,
+// user.user.displayAvatarURL({ dynamic: true })
+// );
+// });
+
+// client.on("guildBanRemove", function (guild, user) {
+// send_log(
+// client,
+// guild,
+// "YELLOW",
+// "USER UNBANNED",
+// `User: ${user} (\`${user.id}\`)\n\`${user.tag}\``,
+// user.user.displayAvatarURL({ dynamic: true })
+// );
+// });
+
+// client.on("guildMemberAdd", function (member) {
+// send_log(
+// member.guild,
+// client,
+// "GREEN",
+// "MEMBER JOINED",
+// `Member: ${member.user} (\`${member.user.id}\`)\n\`${member.user.tag}\``,
+// member.user.displayAvatarURL({ dynamic: true })
+// );
+// });
+
+// client.on("guildMemberRemove", function (member) {
+// send_log(
+// client,
+// member.guild,
+// "RED",
+// "MEMBER LEFT",
+// `Member: ${member.user} (\`${member.user.id}\`)\n\`${member.user.tag}\``,
+// member.user.displayAvatarURL({ dynamic: true })
+// );
+// });
+
+// client.on("guildMembersChunk", function (members, guild) {
+// send_log(
+// guild,
+// client,
+// "RED",
+// "MEMBER CHUNK / RAID - " + members.length + " Members",
+// members.map(
+// (user, index) => `${index}) - ${user} - ${user.tag} - \`${user.id}\``
+// )
+// );
+// });
+
+// client.on("guildMemberUpdate", function (oldMember, newMember) {
+// let options = {};
+
+// if (options[newMember.guild.id]) {
+// options = options[newMember.guild.id];
+// }
+
+// // Add default empty list
+// if (typeof options.excludedroles === "undefined")
+// options.excludedroles = new Array([]);
+// if (typeof options.trackroles === "undefined") options.trackroles = true;
+// const oldMemberRoles = oldMember.roles.cache.keyArray();
+// const newMemberRoles = newMember.roles.cache.keyArray();
+// const oldRoles = oldMemberRoles
+// .filter(x => !options.excludedroles.includes(x))
+// .filter(x => !newMemberRoles.includes(x));
+// const newRoles = newMemberRoles
+// .filter(x => !options.excludedroles.includes(x))
+// .filter(x => !oldMemberRoles.includes(x));
+// const rolechanged = newRoles.length || oldRoles.length;
+
+// if (rolechanged) {
+// let roleadded = "";
+// if (newRoles.length > 0) {
+// for (let i = 0; i < newRoles.length; i++) {
+// if (i > 0) roleadded += ", ";
+// roleadded += `<@&${newRoles[i]}>`;
+// }
+// }
+// let roleremoved = "";
+// if (oldRoles.length > 0) {
+// for (let i = 0; i < oldRoles.length; i++) {
+// if (i > 0) roleremoved += ", ";
+// roleremoved += `<@&${oldRoles[i]}>`;
+// }
+// }
+// let text = `${roleremoved ? `❌ ROLE REMOVED: \n${roleremoved}` : ""}${
+// roleadded ? `✅ ROLE ADDED:\n${roleadded}` : ""
+// }`;
+// send_log(
+// client,
+// oldMember.guild,
+// `${roleadded ? "GREEN" : "RED"}`,
+// "Member Roles Changed",
+// `Member: ${newMember.user}\nUser: \`${oldMember.user.tag}\`\n\n${text}`
+// );
+// }
+// });
+
+// client.on("messageDelete", function (message) {
+// if (message.channel.type !== "text") return;
+
+// send_log(
+// client,
+// message.guild,
+// "ORANGE",
+// "Message Deleted",
+// `
+// **Author : ** <@${message.author.id}> - *${message.author.tag}*
+// **Date : ** ${message.createdAt}
+// **Channel : ** <#${message.channel.id}> - *${message.channel.name}*
+// **Deleted Message : **
+// \`\`\`
+// ${message.content.replace(/`/g, "'")}
+// \`\`\`
+// **Attachment URL : **
+// ${message.attachments.map(x => x.proxyURL)}
+// `
+// );
+// });
+
+// client.on("messageDeleteBulk", function (message) {
+// send_log(
+// client,
+// message.guild,
+// "RED",
+// message.length + " Message Deleted BULK",
+// `${message.length} Messages delete in: ${message.channel}`
+// );
+// });
+
+// client.on("messageUpdate", function (oldMessage, newMessage) {
+// if (oldMessage.author.bot) return;
+// if (oldMessage.channel.type !== "text") return;
+// if (newMessage.channel.type !== "text") return;
+
+// if (oldMessage.content === newMessage.content) return;
+// send_log(
+// client,
+// oldMessage.guild,
+// "YELLOW",
+// "Message Updated",
+// `
+// **Author : ** <@${newMessage.member.user.id}> - *${newMessage.member.user.tag}*
+// **Date : ** ${newMessage.createdAt}
+// **Channel : ** <#${newMessage.channel.id}> - *${newMessage.channel.name}*
+// **Orignal Message : **
+// \`\`\`
+// ${oldMessage.content.replace(/`/g, "'")}
+// \`\`\`
+// **Updated Message : **
+// \`\`\`
+// ${newMessage.content.replace(/`/g, "'")}
+// \`\`\``
+// );
+// });
+
+// client.on("roleCreate", function (role) {
+// send_log(
+// client,
+// role.guild,
+// "GREEN",
+// "ROLE CREATED"`ROLE: ${role}\nROLENAME: ${role.name}\nROLEID: ${role.id}\nHEXCOLOR: ${role.hexColor}\nPOSITION: ${role.position}`
+// );
+// });
+
+// client.on("roleDelete", function (role) {
+// send_log(
+// client,
+// role.guild,
+// "RED",
+// "ROLE DELETED"`ROLE: ${role}\nROLENAME: ${role.name}\nROLEID: ${role.id}\nHEXCOLOR: ${role.hexColor}\nPOSITION: ${role.position}`
+// );
+// });
+
+// client.on("roleUpdate", function (oldRole, newRole) {
+// let perms = {
+// 1: "CREATE_INSTANT_INVITE",
+// 2: "KICK_MEMBERS",
+// 4: "BAN_MEMBERS",
+// 8: "ADMINISTRATOR",
+// 16: "MANAGE_CHANNELS",
+// 32: "MANAGE_GUILD",
+// 64: "ADD_REACTIONS",
+// 128: "VIEW_AUDIT_LOG",
+// 256: "PRIORITY_SPEAKER",
+// 1024: "VIEW_CHANNEL",
+// 1024: "READ_MESSAGES",
+// 2048: "SEND_MESSAGES",
+// 4096: "SEND_TTS_MESSAGES",
+// 8192: "MANAGE_MESSAGES",
+// 16384: "EMBED_LINKS",
+// 32768: "ATTACH_FILES",
+// 65536: "READ_MESSAGE_HISTORY",
+// 131072: "MENTION_EVERYONE",
+// 262144: "EXTERNAL_EMOJIS",
+// 262144: "USE_EXTERNAL_EMOJIS",
+// 1048576: "CONNECT",
+// 2097152: "SPEAK",
+// 4194304: "MUTE_MEMBERS",
+// 8388608: "DEAFEN_MEMBERS",
+// 16777216: "MOVE_MEMBERS",
+// 33554432: "USE_VAD",
+// 67108864: "CHANGE_NICKNAME",
+// 134217728: "MANAGE_NICKNAMES",
+// 268435456: "MANAGE_ROLES",
+// 268435456: "MANAGE_ROLES_OR_PERMISSIONS",
+// 536870912: "MANAGE_WEBHOOKS",
+// "1073741824 ": "MANAGE_EMOJIS",
+// CREATE_INSTANT_INVITE: "CREATE_INSTANT_INVITE",
+// KICK_MEMBERS: "KICK_MEMBERS",
+// BAN_MEMBERS: "BAN_MEMBERS",
+// ADMINISTRATOR: "ADMINISTRATOR",
+// MANAGE_CHANNELS: "MANAGE_CHANNELS",
+// MANAGE_GUILD: "MANAGE_GUILD",
+// ADD_REACTIONS: "ADD_REACTIONS",
+// VIEW_AUDIT_LOG: "VIEW_AUDIT_LOG",
+// PRIORITY_SPEAKER: "PRIORITY_SPEAKER",
+// VIEW_CHANNEL: "VIEW_CHANNEL",
+// READ_MESSAGES: "READ_MESSAGES",
+// SEND_MESSAGES: "SEND_MESSAGES",
+// SEND_TTS_MESSAGES: "SEND_TTS_MESSAGES",
+// MANAGE_MESSAGES: "MANAGE_MESSAGES",
+// EMBED_LINKS: "EMBED_LINKS",
+// ATTACH_FILES: "ATTACH_FILES",
+// READ_MESSAGE_HISTORY: "READ_MESSAGE_HISTORY",
+// MENTION_EVERYONE: "MENTION_EVERYONE",
+// EXTERNAL_EMOJIS: "EXTERNAL_EMOJIS",
+// USE_EXTERNAL_EMOJIS: "USE_EXTERNAL_EMOJIS",
+// CONNECT: "CONNECT",
+// SPEAK: "SPEAK",
+// MUTE_MEMBERS: "MUTE_MEMBERS",
+// DEAFEN_MEMBERS: "DEAFEN_MEMBERS",
+// MOVE_MEMBERS: "MOVE_MEMBERS",
+// USE_VAD: "USE_VAD",
+// CHANGE_NICKNAME: "CHANGE_NICKNAME",
+// MANAGE_NICKNAMES: "MANAGE_NICKNAMES",
+// MANAGE_ROLES: "MANAGE_ROLES",
+// MANAGE_ROLES_OR_PERMISSIONS: "MANAGE_ROLES_OR_PERMISSIONS",
+// MANAGE_WEBHOOKS: "MANAGE_WEBHOOKS",
+// MANAGE_EMOJIS: "MANAGE_EMOJIS",
+// };
+// if (oldRole.name !== newRole.name) {
+// send_log(
+// client,
+// oldRole.guild,
+// "ORANGE",
+// "ROLE NAME CHANGED",
+// `__ROLE: ${oldRole}__ \n\n**Before:** \`${oldRole.name}\`
+// **After:** \`${newRole.name}\`
+// **Role ID:** \`${newRole.id}\``
+// );
+// } else if (oldRole.color !== newRole.color) {
+// send_log(
+// client,
+// oldRole.guild,
+// "ORANGE",
+// "ROLE COLOR CHANGED",
+// `__ROLE: ${newRole}__ \n\n**Before:** \`${oldRole.color.toString(16)}\`
+// **After:** \`${newRole.color.toString(16)}\`
+// **ROLE ID:** \`${newRole.id}\``
+// );
+// } else {
+// send_log(
+// client,
+// oldRole.guild,
+// "RED",
+// "ROLE PERMISSIONS CHANGED",
+// `__ROLE: ${newRole}__ \n**THE PERMISSIONS CHANGED PLEASE CHECK!!!**OLD PERMISSIONS: ${oldRole.permissions.bitfield}
+// NEW PERMISSIONS: ${newRole.permissions.bitfield}
+// **Role ID:** \`${newRole.id}\``
+// );
+// }
+// });
+
+// client.on("userUpdate", async (oldUser, newUser) => {
+// if (oldUser.username !== newUser.username) {
+// send_log(
+// client,
+// oldUser.guild,
+// "BLACK",
+// "Member Username Changed",
+// `Member: ${newUser}\nOld Username: \`${oldUser.username}\`\nNew Username: \`${newUser.username}\` `
+// );
+// }
+// });
+// async function send_log(client, guild, color, title, description, thumb) {
+// try {
+// const LogEmbed = new Discord.MessageEmbed()
+// .setColor(color ? color : client.color)
+// .setDescription(description ? description.substr(0, 2048) : "\u200b")
+// .setTitle(title ? title.substr(0, 256) : "\u200b")
+// .setTimestamp()
+// .setThumbnail(
+// thumb ? thumb : client.user.displayAvatarURL({ format: "png" })
+// )
+// .setFooter(
+// "Made by Cath Team",
+// client.user.displayAvatarURL({ format: "png" })
+// );
+// const db = await Guild.findOne({ Guild: guild.id }, (err, guild) => {
+// if (err) throw err;
+// });
+// if (!db) return;
+// const ch = db.Log;
+// const logger = await client.channels.fetch(ch);
+// if (!logger) throw new Error("Error 404 - Channel Not Found");
+// try {
+// const hook = new Discord.WebhookClient(
+// db.LogWebhookID,
+// db.LogWebhookToken
+// );
+// hook.send({
+// username: guild.name,
+// avatarURL: client.user.displayAvatarURL({ format: "png" }),
+// embeds: [LogEmbed],
+// });
+// } catch {
+// return;
+// }
+// } catch (e) {
+// console.log(e);
+// }
+// }
diff --git a/events/message.js b/events/message.js
index fb2a5b7..4fe191c 100644
--- a/events/message.js
+++ b/events/message.js
@@ -5,15 +5,15 @@ const { prefix } = require("../config.json");
const guilds = require("../models/guilds");
const ms = require("ms");
const schema = require("../models/custom-commands");
-const Timeout = new Collection();
const Timeout2 = new Collection();
-const db = require("../models/status");
+const db = require("../models/bot");
+const cooldown = require("../models/cooldown");
client.on("message", async message => {
const p = await client.prefix(message);
if (message.author.bot) return;
if (message.content.match(new RegExp(`^<@!?${client.user.id}>( |)$`))) {
const _ = new MessageEmbed()
- .setTitle("cath.exe")
+ .setTitle(client.user.username)
.addField("Links:", client.cat)
.addField(
"Prefix/Usage",
@@ -26,12 +26,11 @@ client.on("message", async message => {
.setColor(client.color);
return message.inlineReply(_).then(m => m.delete({ timeout: 15000 }));
}
- if (!message.content.toLowerCase().startsWith(p.toLowerCase())) return;
if (!message.guild) return;
+ if (!message.content.toLowerCase().startsWith(p.toLowerCase())) return;
if (!message.member) {
message.member = await message.guild.fetchMember(message);
}
-
db.findOne({ Bot: client.user.id }, async (err, data) => {
if (!data) {
new db({
@@ -54,11 +53,16 @@ client.on("message", async message => {
if (!guildDB) return;
let userDB = await client.data.getUser(message.author.id);
if (!userDB) return;
+ let userEconDB = await client.data.getUserEcon(message.author.id);
data.Guild = guildDB;
data.User = userDB;
+ data.UserEcon = userEconDB;
if (!guildDB) {
await client.data.CreateGuild(message.guild.id);
}
+ if (!userEconDB) {
+ await client.createProfile(message.author.id);
+ }
if (data.User) {
if (data.User.Blacklist) {
return;
@@ -118,20 +122,38 @@ client.on("message", async message => {
}
if (command.Premium == true) {
if (data.User.Premium == false) {
- return message.inlineReply(
- new MessageEmbed()
- .setURL(client.web)
- .setAuthor(
- message.author.tag,
- message.author.displayAvatarURL({ dynamic: true })
- )
- .setColor(client.color)
- .setDescription(
- `You aren't a premium user. You can either boost support server or gift a nitro to one of the Developer of Cath Team to be premium user`
- )
- .setTimestamp()
- .setFooter(`Made by ${client.author}`)
- );
+ return message
+ .inlineReply(
+ new MessageEmbed()
+ .setURL(client.web)
+ .setAuthor(
+ message.author.tag,
+ message.author.displayAvatarURL({ dynamic: true })
+ )
+ .setColor(client.color)
+ .setDescription(
+ `You aren't a premium user. You can either boost support server or gift a nitro to one of the Developer of Cath Team to be premium user`
+ )
+ .setTimestamp()
+ .setFooter(`Made by ${client.author}`)
+ )
+ .then(m => m.delete({ timeout: 10000 }));
+ }
+ }
+ if (command.Disable == true) {
+ return message
+ .inlineReply(
+ `**${command.name}** command is currently in maintenance.\nYou can use **cath.exe#9686** or **Cath 2#7414** if it is online\nIf you need help, please contact **Cat drinking a cat#0795** or **Ń1ght#0001**`
+ )
+ .then(m => m.delete({ timeout: 10000 }));
+ }
+ if (command.Level == true) {
+ if (data.Guild.Level == false) {
+ return message
+ .inlineReply(
+ `This command is disabled due to levelling system is disabled in this server`
+ )
+ .then(m => m.delete({ timeout: 10000 }));
}
}
if (!message.member.permissions.has(command.UserPerm)) return;
@@ -160,36 +182,143 @@ client.on("message", async message => {
} else;
}
if (command.timeout) {
- const slow = [
- "Keep it slow...",
- "Calm down",
- "Stop it get some help",
- "Too fast",
- ];
- const slowed = slow[Math.floor(Math.random() * slow.length)];
- if (Timeout.has(`${command.name}${message.author.id}`))
- return message.channel.send(
- new MessageEmbed()
- .setColor(client.color)
- .setTimestamp()
- .setTitle(slowed)
- .setDescription(
- `You are on a \`${ms(
- Timeout.get(`${command.name}${message.author.id}`) -
- Date.now(),
- { long: true }
- )}\` cooldown.`
- )
- );
- command.run(client, message, args);
- Timeout.set(
- `${command.name}${message.author.id}`,
- Date.now() + command.timeout
+ const current_time = Date.now();
+ const cooldown_amount = command.timeout;
+ cooldown.findOne(
+ { User: message.author.id, CMD: command.name },
+ async (err, dataa) => {
+ if (dataa) {
+ if (data.User.Premium == true) {
+ if (command.timeout > 1000 * 60 * 60) {
+ const expiration_time = dataa.Time + command.timeout;
+ if (current_time < expiration_time) {
+ const time_left = expiration_time - current_time;
+ const slow = [
+ "Keep it slow...",
+ "Calm down",
+ "Stop it get some help",
+ "Too fast",
+ ];
+ const slowed =
+ slow[Math.floor(Math.random() * slow.length)];
+ return message.channel
+ .send(
+ new MessageEmbed()
+ .setColor(client.color)
+ .setTimestamp()
+ .setTitle(slowed)
+ .setDescription(
+ `Wait **${client.function.timer(
+ time_left
+ )}** to use the command again!\nThe default cooldown is **${client.function.timer(
+ command.timeout
+ )}**`
+ )
+ )
+ .then(m => m.delete({ timeout: 10000 }));
+ } else {
+ await cooldown.findOneAndUpdate(
+ { User: message.author.id, CMD: command.name },
+ { Time: current_time }
+ );
+ command.run(client, message, args, data);
+ client.addcmdsused(message.author.id);
+ }
+ } else {
+ const expiration_time = dataa.Time + command.timeout / 2;
+ if (current_time < expiration_time) {
+ const time_left = expiration_time - current_time;
+ const slow = [
+ "Keep it slow...",
+ "Calm down",
+ "Stop it get some help",
+ "Too fast",
+ ];
+ const slowed =
+ slow[Math.floor(Math.random() * slow.length)];
+ return message.channel
+ .send(
+ new MessageEmbed()
+ .setColor(client.color)
+ .setTimestamp()
+ .setTitle(slowed)
+ .setDescription(
+ `Wait **${client.function.timer(
+ time_left
+ )}** to use the command again!\nThe default cooldown is **${client.function.timer(
+ command.timeout
+ )}**, since you are **[premium](${
+ client.invite
+ })** users, you only need to wait **${client.function.timer(
+ command.timeout / 2
+ )}**`
+ )
+ )
+ .then(m => m.delete({ timeout: 10000 }));
+ } else {
+ await cooldown.findOneAndUpdate(
+ { User: message.author.id, CMD: command.name },
+ { Time: current_time }
+ );
+ command.run(client, message, args, data);
+ client.addcmdsused(message.author.id);
+ }
+ }
+ } else {
+ const expiration_time = dataa.Time + cooldown_amount;
+ if (current_time < expiration_time) {
+ const time_left = expiration_time - current_time;
+ const slow = [
+ "Keep it slow...",
+ "Calm down",
+ "Stop it get some help",
+ "Too fast",
+ ];
+ const slowed = slow[Math.floor(Math.random() * slow.length)];
+ return message.channel
+ .send(
+ new MessageEmbed()
+ .setColor(client.color)
+ .setTimestamp()
+ .setTitle(slowed)
+ .setDescription(
+ `Wait **${client.function.timer(
+ time_left
+ )}** to use the command again!\nThe default cooldown is **${client.function.timer(
+ command.timeout
+ )}**, but **[premium](${
+ client.invite
+ })** users only need to wait **${client.function.timer(
+ command.timeout / 2
+ )}**`
+ )
+ )
+ .then(m => m.delete({ timeout: 10000 }));
+ } else {
+ await cooldown.findOneAndUpdate(
+ { User: message.author.id, CMD: command.name },
+ { Time: current_time }
+ );
+ command.run(client, message, args, data);
+ client.addcmdsused(message.author.id);
+ }
+ }
+ } else {
+ command.run(client, message, args, data);
+ client.addcmdsused(message.author.id);
+ new cooldown({
+ User: message.author.id,
+ CMD: command.name,
+ Time: current_time,
+ Cooldown: command.timeout,
+ }).save();
+ }
+ }
);
- setTimeout(() => {
- Timeout.delete(`${command.name}${message.author.id}`);
- }, command.timeout);
- } else command.run(client, message, args);
+ } else {
+ command.run(client, message, args, data);
+ client.addcmdsused(message.author.id);
+ }
}
} else {
if (cmddata.Delete === true && cmddata.Random === false) {
@@ -233,19 +362,23 @@ client.on("message", async message => {
];
const slowed = slow[Math.floor(Math.random() * slow.length)];
if (Timeout2.has(`${path.name}${message.author.id}`))
- return message.channel.send(
- new MessageEmbed()
- .setColor(client.color)
- .setTimestamp()
- .setTitle(slowed)
- .setDescription(
- `You are on a \`${ms(
- Timeout2.get(`${path.name}${message.author.id}`) - Date.now(),
- { long: true }
- )}\` cooldown.`
- )
- );
+ return message.channel
+ .send(
+ new MessageEmbed()
+ .setColor(client.color)
+ .setTimestamp()
+ .setTitle(slowed)
+ .setDescription(
+ `Wait **${client.function.timer(
+ time_left
+ )}** to use the command again!\nThe default cooldown is **${client.function.timer(
+ command.timeout
+ )}**`
+ )
+ )
+ .then(m => m.delete({ timeout: 10000 }));
path.run(client, message, args);
+ client.addcmdsused(message.author.id);
Timeout2.set(
`${path.name}${message.author.id}`,
Date.now() + path.timeout
@@ -253,7 +386,10 @@ client.on("message", async message => {
setTimeout(() => {
Timeout2.delete(`${path.name}${message.author.id}`);
}, path.timeout);
- } else path.run(client, message, args);
+ } else {
+ path.run(client, message, args);
+ client.addcmdsused(message.author.id);
+ }
}
});
client.on("message", async message => {
@@ -264,10 +400,16 @@ client.on("message", async message => {
!message.author.bot
) {
var attachment = message.attachments.array();
- client.DMLog.send(
- `\`${message.author.tag}(${message.author.id})\`: ` + message.content
- );
+ client.channels.cache
+ .get(client.DMLog)
+ .send(
+ `\`${message.author.tag}(${message.author.id})\`: ` + message.content
+ );
if (attachment[0]) client.DMLog.send(attachment);
+ if (attachment[1]) client.DMLog.send(attachment);
+ if (attachment[2]) client.DMLog.send(attachment);
+ if (attachment[3]) client.DMLog.send(attachment);
+ if (attachment[4]) client.DMLog.send(attachment);
}
});
/*
diff --git a/events/raw.js b/events/raw.js
new file mode 100644
index 0000000..0a3d391
--- /dev/null
+++ b/events/raw.js
@@ -0,0 +1,2 @@
+const client = require("../bot");
+client.on("raw", d => client.manager.updateVoiceState(d));
diff --git a/events/ready.js b/events/ready.js
index 8a90ab9..28a989d 100644
--- a/events/ready.js
+++ b/events/ready.js
@@ -3,32 +3,49 @@ const config = require("../config.json");
const prefix = config.prefix;
const version = require("../package.json").version;
const { MessageEmbed } = require("discord.js");
-const m = require("../models/status");
-client.on("ready", () => {
+const m = require("../models/bot");
+const test = require("../util/dist/cmds").cmds();
+client.on("ready", async () => {
+ client.manager.init(client.user.id);
var users = client.guilds.cache
.reduce((a, b) => a + b.memberCount, 0)
.toLocaleString();
- var playing = [
- `v${version} | ${prefix}help`,
- client.web,
- `with ${users} users`,
- ];
+ var guilds = client.guilds.cache.size.toString();
+ await client.data.botcache(client.user.id, guilds, users);
+ await client.data.commands(client.user.id, test);
+ var playing = [`v${version} | ${prefix}help`, client.web, `${users} users`];
async function find() {
const statusdb = await m.findOne({
Status: "true",
});
if (statusdb && statusdb.Status == "true") {
- await client.user.setPresence({ status: "dnd" });
- client.user.setActivity({
- name: "Under Maintenance",
+ client.user.setPresence({
+ activity: [
+ {
+ name: "Under Maintenance",
+ type: "WATCHING",
+ },
+ ],
+ status: "dnd",
});
+ // client.user.setPresence({
+ // activity: [
+ // {
+ // name: "Under Maintenance",
+ // type: "STREAMING",
+ // url: "https://twtich.tv/thekiritosgaming",
+ // },
+ // ],
+ // status: "dnd",
+ // });
} else {
- var set = setInterval(function () {
+ setInterval(function () {
var game = Math.floor(Math.random() * playing.length + 0);
client.user.setActivity({
name: playing[game],
type: "STREAMING",
- url: "https://www.twitch.tv/thekiritosgaming",
+ url: "https://twitch.tv/thekiritosgaming",
+ //status: "online",
});
}, 5000);
}
diff --git a/events/startTyping.js b/events/startTyping.js
new file mode 100644
index 0000000..d9b1e9a
--- /dev/null
+++ b/events/startTyping.js
@@ -0,0 +1,10 @@
+const client = require("../bot");
+client.on("typingStart", async (channel, user) => {
+ if (!user) return;
+ if (user.bot) return;
+ if (!channel) return;
+ if (channel.type != "dm") return;
+ user.send(
+ "```DMs is reserved for bug reports/suggestions/feedbacks/queries and is forwarded to the developers. Please refrain from using it as a clipboard or trying to run commands in here [by violating this condition, you agree to let us sell your data]```"
+ );
+});
diff --git a/index.js b/index.js
index c29ffa6..caf1d3a 100644
--- a/index.js
+++ b/index.js
@@ -1,14 +1,15 @@
const { ShardingManager } = require("discord.js");
-const manger = new ShardingManager(`./bot.js`, {
- token: "NzY1NTQyNDI0OTY4ODIyNzg1.X4WU8Q.gEwsAO8uMyJLZ2v7xq_TSRODvfk",
+require("dotenv").config();
+const manager = new ShardingManager(`./bot.js`, {
+ token: process.env.TOKEN,
totalShards: `auto`,
});
-manger.on(`shardCreate`, shard => {
+manager.on(`shardCreate`, shard => {
console.log(
`[${new Date().toString().split(" ", 5).join(" ")}] Spawned shard #${
shard.id
}`
);
});
-manger.spawn(manger.totalShards, 10000);
+manager.spawn(manager.totalShards, 10000);
diff --git a/models/status.js b/models/bot.js
similarity index 54%
rename from models/status.js
rename to models/bot.js
index 5e537c5..99d3e9e 100644
--- a/models/status.js
+++ b/models/bot.js
@@ -7,5 +7,17 @@ module.exports = mongoose.model(
default: "null",
},
Status: { type: String, default: "false" },
+ Guilds: {
+ type: String,
+ default: "null",
+ },
+ Users: {
+ type: String,
+ default: "null",
+ },
+ Commands: {
+ type: Array,
+ default: [],
+ },
})
);
diff --git a/models/cooldown.js b/models/cooldown.js
new file mode 100644
index 0000000..7e422dd
--- /dev/null
+++ b/models/cooldown.js
@@ -0,0 +1,22 @@
+const { Schema, model } = require("mongoose");
+module.exports = model(
+ "cooldown",
+ new Schema({
+ User: {
+ type: String,
+ required: true,
+ },
+ CMD: {
+ type: String,
+ default: "",
+ },
+ Time: {
+ type: Number,
+ default: 0,
+ },
+ Cooldown: {
+ type: Number,
+ default: 0,
+ },
+ })
+);
diff --git a/models/econ.js b/models/econ.js
index 44f65a5..4aacfc7 100644
--- a/models/econ.js
+++ b/models/econ.js
@@ -8,8 +8,19 @@ module.exports = model(
},
CP: {
type: Number,
- required: true,
+ default: 0,
+ },
+ BJWins: {
+ type: Number,
+ default: 0,
+ },
+ SlotsWins: {
+ type: Number,
+ default: 0,
+ },
+ BetWins: {
+ type: Number,
+ default: 0,
},
- Inventory: Object,
})
);
diff --git a/models/guilds.js b/models/guilds.js
index 69a8251..d0be1e1 100644
--- a/models/guilds.js
+++ b/models/guilds.js
@@ -31,5 +31,9 @@ module.exports = mongoose.model(
type: Array,
default: [],
},
+ Level: {
+ type: Boolean,
+ default: false,
+ },
})
);
diff --git a/models/users.js b/models/users.js
index 713b69c..12129d2 100644
--- a/models/users.js
+++ b/models/users.js
@@ -27,5 +27,9 @@ module.exports = mongoose.model(
type: Array,
default: [],
},
+ CommandUsed: {
+ type: Number,
+ default: 0,
+ },
})
);
diff --git a/package-lock.json b/package-lock.json
index dd1f1ef..16e050e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,34 +1,4564 @@
{
"name": "cath.exe",
"version": "2.0.1",
- "lockfileVersion": 1,
+ "lockfileVersion": 2,
"requires": true,
- "dependencies": {
- "@babel/helper-validator-identifier": {
- "version": "7.14.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz",
- "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A=="
- },
- "@babel/parser": {
- "version": "7.14.1",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.1.tgz",
- "integrity": "sha512-muUGEKu8E/ftMTPlNp+mc6zL3E9zKWmF5sDHZ5MSsoTP9Wyz64AhEf9kD08xYJ7w6Hdcu8H550ircnPyWSIF0Q=="
- },
- "@babel/runtime": {
- "version": "7.13.10",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz",
- "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==",
- "requires": {
- "regenerator-runtime": "^0.13.4"
+ "packages": {
+ "": {
+ "name": "cath.exe",
+ "version": "2.0.1",
+ "license": "ISC",
+ "dependencies": {
+ "@reconlx/discord.js": "^1.1.101",
+ "axios": "^0.21.1",
+ "canvacord": "^5.2.1",
+ "canvas": "^2.8.0",
+ "cath": "^1.0.7",
+ "common-tags": "^1.8.0",
+ "cors": "^2.8.5",
+ "discord-canvas": "^1.4.1",
+ "discord-giveaways": "^4.5.1",
+ "discord-xp": "^1.1.16",
+ "discord.js": "^12.5.3",
+ "dotenv": "^10.0.0",
+ "erela.js": "^2.3.3",
+ "erela.js-spotify": "^1.2.0",
+ "express": "^4.17.1",
+ "express-session": "^1.17.2",
+ "figlet": "^1.5.0",
+ "goosecache": "^9.0.14",
+ "imageapi.js": "^1.7.0",
+ "leven": "^3.1.0",
+ "lyrics-finder": "^21.7.0",
+ "moment": "^2.29.1",
+ "mongoose": "^5.13.2",
+ "ms": "^2.1.3",
+ "node-fetch": "^2.6.1",
+ "node-superfetch": "^0.1.11",
+ "quick.db": "^7.1.3",
+ "quickchart-js": "^1.2.0",
+ "reconlx": "^1.3.3",
+ "soundcloud-downloader": "^0.2.4",
+ "string-toolkit": "^1.4.0",
+ "superscript-text": "^1.0.0",
+ "weky": "^1.9.9"
+ },
+ "devDependencies": {
+ "eslint": "^7.30.0",
+ "eslint-config-google": "^0.14.0",
+ "jshint": "^2.13.0",
+ "prettier": "^2.3.2"
+ },
+ "engines": {
+ "node": "*",
+ "npm": "*"
}
},
- "@babel/types": {
- "version": "7.14.1",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz",
- "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==",
+ "node_modules/@babel/code-frame": {
+ "version": "7.12.11",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz",
+ "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/highlight": "^7.10.4"
+ }
+ },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.14.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz",
+ "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/highlight": {
+ "version": "7.14.5",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz",
+ "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.14.5",
+ "chalk": "^2.0.0",
+ "js-tokens": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "dev": true
+ },
+ "node_modules/@babel/highlight/node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/runtime": {
+ "version": "7.14.6",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.6.tgz",
+ "integrity": "sha512-/PCB2uJ7oM44tz8YhC4Z/6PeOKXp4K588f+5M3clr1M4zbqztlo0XEfJ2LEzj/FgwfgGcIdl8n7YYjTCI0BYwg==",
+ "dependencies": {
+ "regenerator-runtime": "^0.13.4"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@canvacord/assets": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@canvacord/assets/-/assets-1.0.2.tgz",
+ "integrity": "sha512-76uLD27UDlfTxtgA7armbt6G9/X1NDqm/qjs9gxbWFVfcJxVdT3r3LlwaLp0NlRa5yMylCFf3WcOHufVjk60vw=="
+ },
+ "node_modules/@canvacord/emoji-parser": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@canvacord/emoji-parser/-/emoji-parser-1.0.1.tgz",
+ "integrity": "sha512-Lb3xatdd91MR9tU4sicgrxxKg+/rVD1zKTOh55bmVF2Ri5X8vHTV+jNHTvRzkomGpyepGM+7qA4xMvG8ZqtO8g==",
+ "dependencies": {
+ "twemoji-parser": "^13.0.0"
+ }
+ },
+ "node_modules/@discordjs/collection": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.1.6.tgz",
+ "integrity": "sha512-utRNxnd9kSS2qhyivo9lMlt5qgAUasH2gb7BEOn6p0efFh24gjGomHzWKMAPn2hEReOPQZCJaRKoURwRotKucQ=="
+ },
+ "node_modules/@discordjs/form-data": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@discordjs/form-data/-/form-data-3.0.1.tgz",
+ "integrity": "sha512-ZfFsbgEXW71Rw/6EtBdrP5VxBJy4dthyC0tpQKGKmYFImlmmrykO14Za+BiIVduwjte0jXEBlhSKf0MWbFp9Eg==",
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/@eslint/eslintrc": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.2.tgz",
+ "integrity": "sha512-8nmGq/4ycLpIwzvhI4tNDmQztZ8sp+hI7cyG8i1nQDhkAbRzHpXPidRAHlNvCZQpJTKw5ItIpMw9RSToGF00mg==",
+ "dev": true,
+ "dependencies": {
+ "ajv": "^6.12.4",
+ "debug": "^4.1.1",
+ "espree": "^7.3.0",
+ "globals": "^13.9.0",
+ "ignore": "^4.0.6",
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^3.13.1",
+ "minimatch": "^3.0.4",
+ "strip-json-comments": "^3.1.1"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/@humanwhocodes/config-array": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz",
+ "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==",
+ "dev": true,
+ "dependencies": {
+ "@humanwhocodes/object-schema": "^1.2.0",
+ "debug": "^4.1.1",
+ "minimatch": "^3.0.4"
+ },
+ "engines": {
+ "node": ">=10.10.0"
+ }
+ },
+ "node_modules/@humanwhocodes/object-schema": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz",
+ "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==",
+ "dev": true
+ },
+ "node_modules/@kensingtontech/recacheman": {
+ "version": "2.2.8",
+ "resolved": "https://registry.npmjs.org/@kensingtontech/recacheman/-/recacheman-2.2.8.tgz",
+ "integrity": "sha512-rbh85Pse/iqT+doCauVZWxqaXCJpnjjJKOh3hFE5b7J1SoHp/S4IY94CZ8E8uV/eHUQlPF5YfTuCYjSaMTX9eQ==",
+ "dependencies": {
+ "@kensingtontech/recacheman-redis": "^2.1.6",
+ "ms": "^2.1.3",
+ "recacheman-file": "^0.2.5",
+ "recacheman-memory": "^1.1.0"
+ }
+ },
+ "node_modules/@kensingtontech/recacheman-redis": {
+ "version": "2.1.6",
+ "resolved": "https://registry.npmjs.org/@kensingtontech/recacheman-redis/-/recacheman-redis-2.1.6.tgz",
+ "integrity": "sha512-hTB0i3yxjciMF0zjr5U4ui/Qv4OVb/ld2PHKvE4NTpiGUz0kzye1d0verKwBWmenvFnScKTX9KXc7/HE59CdRA==",
+ "dependencies": {
+ "each": "1.2.1",
+ "parse-redis-url": "0.0.2",
+ "redis": "^3.0.2"
+ }
+ },
+ "node_modules/@mapbox/node-pre-gyp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.5.tgz",
+ "integrity": "sha512-4srsKPXWlIxp5Vbqz5uLfBN+du2fJChBoYn/f2h991WLdk7jUvcSk/McVLSv/X+xQIPI8eGD5GjrnygdyHnhPA==",
+ "dependencies": {
+ "detect-libc": "^1.0.3",
+ "https-proxy-agent": "^5.0.0",
+ "make-dir": "^3.1.0",
+ "node-fetch": "^2.6.1",
+ "nopt": "^5.0.0",
+ "npmlog": "^4.1.2",
+ "rimraf": "^3.0.2",
+ "semver": "^7.3.4",
+ "tar": "^6.1.0"
+ },
+ "bin": {
+ "node-pre-gyp": "bin/node-pre-gyp"
+ }
+ },
+ "node_modules/@reconlx/discord.js": {
+ "version": "1.1.101",
+ "resolved": "https://registry.npmjs.org/@reconlx/discord.js/-/discord.js-1.1.101.tgz",
+ "integrity": "sha512-YKXJ74zra1tUwtx0p2U1nZWhnBTe2WhZioTMT5+W89QQrheyYus1MUWdJceAsN0eIs0p4zqhrNqWMWNY7B3xyQ=="
+ },
+ "node_modules/@tootallnate/once": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz",
+ "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/@types/bson": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@types/bson/-/bson-4.0.4.tgz",
+ "integrity": "sha512-awqorHvQS0DqxkHQ/FxcPX9E+H7Du51Qw/2F+5TBMSaE3G0hm+8D3eXJ6MAzFw75nE8V7xF0QvzUSdxIjJb/GA==",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/mongodb": {
+ "version": "3.6.20",
+ "resolved": "https://registry.npmjs.org/@types/mongodb/-/mongodb-3.6.20.tgz",
+ "integrity": "sha512-WcdpPJCakFzcWWD9juKoZbRtQxKIMYF/JIAM4JrNHrMcnJL6/a2NWjXxW7fo9hxboxxkg+icff8d7+WIEvKgYQ==",
+ "dependencies": {
+ "@types/bson": "*",
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/node": {
+ "version": "15.14.2",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.2.tgz",
+ "integrity": "sha512-dvMUE/m2LbXPwlvVuzCyslTEtQ2ZwuuFClDrOQ6mp2CenCg971719PTILZ4I6bTP27xfFFc+o7x2TkLuun/MPw=="
+ },
+ "node_modules/abab": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz",
+ "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q=="
+ },
+ "node_modules/abbrev": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
+ },
+ "node_modules/abort-controller": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
+ "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
+ "dependencies": {
+ "event-target-shim": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=6.5"
+ }
+ },
+ "node_modules/accepts": {
+ "version": "1.3.7",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
+ "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
+ "dependencies": {
+ "mime-types": "~2.1.24",
+ "negotiator": "0.6.2"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/acorn": {
+ "version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
+ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/acorn-globals": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz",
+ "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==",
+ "dependencies": {
+ "acorn": "^7.1.1",
+ "acorn-walk": "^7.1.1"
+ }
+ },
+ "node_modules/acorn-jsx": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "dev": true,
+ "peerDependencies": {
+ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/acorn-walk": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz",
+ "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/agent-base": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
+ "dependencies": {
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 6.0.0"
+ }
+ },
+ "node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/ansi-colors": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
+ "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/aproba": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
+ },
+ "node_modules/are-we-there-yet": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
+ "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
+ "dependencies": {
+ "delegates": "^1.0.0",
+ "readable-stream": "^2.0.6"
+ }
+ },
+ "node_modules/are-we-there-yet/node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ },
+ "node_modules/are-we-there-yet/node_modules/readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "node_modules/are-we-there-yet/node_modules/string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "node_modules/argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dev": true,
+ "dependencies": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "node_modules/array-flatten": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
+ },
+ "node_modules/astral-regex": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
+ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
+ },
+ "node_modules/axios": {
+ "version": "0.21.1",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz",
+ "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==",
+ "dependencies": {
+ "follow-redirects": "^1.10.0"
+ }
+ },
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
+ },
+ "node_modules/base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/better-sqlite3": {
+ "version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-7.4.1.tgz",
+ "integrity": "sha512-sk1kW3PsWE7W7G9qbi5TQxCROlQVR8YWlp4srbyrwN5DrLeamKfrm3JExwOiNSAYyJv8cw5/2HOfvF/ipZj4qg==",
+ "hasInstallScript": true,
+ "dependencies": {
+ "bindings": "^1.5.0",
+ "prebuild-install": "^6.0.1",
+ "tar": "^6.1.0"
+ }
+ },
+ "node_modules/bindings": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
+ "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
+ "dependencies": {
+ "file-uri-to-path": "1.0.0"
+ }
+ },
+ "node_modules/bl": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz",
+ "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==",
+ "dependencies": {
+ "readable-stream": "^2.3.5",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "node_modules/bl/node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ },
+ "node_modules/bl/node_modules/readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "node_modules/bl/node_modules/string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "node_modules/bluebird": {
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
+ "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA=="
+ },
+ "node_modules/body-parser": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
+ "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
+ "dependencies": {
+ "bytes": "3.1.0",
+ "content-type": "~1.0.4",
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "http-errors": "1.7.2",
+ "iconv-lite": "0.4.24",
+ "on-finished": "~2.3.0",
+ "qs": "6.7.0",
+ "raw-body": "2.4.0",
+ "type-is": "~1.6.17"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/body-parser/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/body-parser/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/browser-process-hrtime": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz",
+ "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow=="
+ },
+ "node_modules/bson": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.6.tgz",
+ "integrity": "sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==",
+ "engines": {
+ "node": ">=0.6.19"
+ }
+ },
+ "node_modules/buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
+ "node_modules/bytes": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
+ "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/canvacord": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/canvacord/-/canvacord-5.2.1.tgz",
+ "integrity": "sha512-vauEvj3QEDNyza6laa4C5cKiOSld/O+Uvjr8uzD+ANUxaWtprHE6372J7oXMqrjPEsOd4XAwKuy5zlVPe4a7OQ==",
+ "dependencies": {
+ "@canvacord/assets": "^1.0.2",
+ "@canvacord/emoji-parser": "^1.0.1",
+ "canvas": "^2.7.0",
+ "gifencoder": "^2.0.1",
+ "moment": "^2.29.1",
+ "moment-duration-format": "^2.3.2"
+ },
+ "funding": {
+ "type": "individual",
+ "url": "https://paypal.me/devsnowflake"
+ }
+ },
+ "node_modules/canvas": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/canvas/-/canvas-2.8.0.tgz",
+ "integrity": "sha512-gLTi17X8WY9Cf5GZ2Yns8T5lfBOcGgFehDFb+JQwDqdOoBOcECS9ZWMEAqMSVcMYwXD659J8NyzjRY/2aE+C2Q==",
+ "hasInstallScript": true,
+ "dependencies": {
+ "@mapbox/node-pre-gyp": "^1.0.0",
+ "nan": "^2.14.0",
+ "simple-get": "^3.0.3"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/cath": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/cath/-/cath-1.0.7.tgz",
+ "integrity": "sha512-P6kdi3KiE80eMK957AvQacDPD6z8ZupcoiGD6GpeLbOvSOzQSXIaUtiNutIlnDfqQ9D90PV4Imu2KwplIjLOAA==",
+ "dependencies": {
+ "discord.js": "^12.5.1"
+ }
+ },
+ "node_modules/chalk": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz",
+ "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/charenc": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz",
+ "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/chownr": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
+ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/cli": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz",
+ "integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=",
+ "dev": true,
+ "dependencies": {
+ "exit": "0.1.2",
+ "glob": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=0.2.5"
+ }
+ },
+ "node_modules/code-point-at": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "node_modules/combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "dependencies": {
+ "delayed-stream": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/common-tags": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz",
+ "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==",
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/complex.js": {
+ "version": "2.0.15",
+ "resolved": "https://registry.npmjs.org/complex.js/-/complex.js-2.0.15.tgz",
+ "integrity": "sha512-gDBvQU8IG139ZBQTSo2qvDFP+lANMGluM779csXOr6ny1NUtA3wkUnCFjlDNH/moAVfXtvClYt6G0zarFbtz5w==",
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "type": "patreon",
+ "url": "https://www.patreon.com/infusion"
+ }
+ },
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ },
+ "node_modules/console-browserify": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
+ "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=",
+ "dev": true,
+ "dependencies": {
+ "date-now": "^0.1.4"
+ }
+ },
+ "node_modules/console-control-strings": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
+ },
+ "node_modules/content-disposition": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
+ "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
+ "dependencies": {
+ "safe-buffer": "5.1.2"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/content-type": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
+ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/cookie": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
+ "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/cookie-signature": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
+ },
+ "node_modules/core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
+ },
+ "node_modules/cors": {
+ "version": "2.8.5",
+ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
+ "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
+ "dependencies": {
+ "object-assign": "^4",
+ "vary": "^1"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/cross-spawn": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "dev": true,
+ "dependencies": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/crypt": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz",
+ "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/cssom": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz",
+ "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw=="
+ },
+ "node_modules/cssstyle": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz",
+ "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==",
+ "dependencies": {
+ "cssom": "~0.3.6"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cssstyle/node_modules/cssom": {
+ "version": "0.3.8",
+ "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz",
+ "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg=="
+ },
+ "node_modules/data-urls": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz",
+ "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==",
+ "dependencies": {
+ "abab": "^2.0.3",
+ "whatwg-mimetype": "^2.3.0",
+ "whatwg-url": "^8.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/date-now": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
+ "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=",
+ "dev": true
+ },
+ "node_modules/debug": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
+ "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/debug/node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "node_modules/decimal.js": {
+ "version": "10.3.1",
+ "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz",
+ "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ=="
+ },
+ "node_modules/decompress-response": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz",
+ "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==",
+ "dependencies": {
+ "mimic-response": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/deep-extend": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/deep-is": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
+ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ="
+ },
+ "node_modules/deepmerge": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
+ "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/delegates": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
+ },
+ "node_modules/denque": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.0.tgz",
+ "integrity": "sha512-CYiCSgIF1p6EUByQPlGkKnP1M9g0ZV3qMIrqMqZqdwazygIA/YP2vrbcyl1h/WppKJTdl1F85cXIle+394iDAQ==",
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/depd": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+ "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/destroy": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
+ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
+ },
+ "node_modules/detect-libc": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
+ "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=",
+ "bin": {
+ "detect-libc": "bin/detect-libc.js"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/discord-buttons": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/discord-buttons/-/discord-buttons-3.2.1.tgz",
+ "integrity": "sha512-UN5xOLG0TwTX6Qr/hjdSyP63HxOYxs5saxfdJ/vijSqjfa/yVPgxO2InKF0l8rpsDOVMsLWGDFLI3+Ax97/LOg==",
+ "funding": {
+ "type": "individual",
+ "url": "https://ko-fi.com/angelocore"
+ }
+ },
+ "node_modules/discord-canvas": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/discord-canvas/-/discord-canvas-1.4.1.tgz",
+ "integrity": "sha512-0Ee1mvmalw1Nz60MwU6SxUdFNUDrJwx8II4JxaDFqw/2nEPav7PB8giQxDPaCgcyFOAvReQJFSQ66FCr+m1O8g==",
+ "dependencies": {
+ "canvas": "^2.6.1",
+ "fortnite": "^4.3.2",
+ "fortnite-9812": "^1.0.4",
+ "fs": "^0.0.1-security"
+ }
+ },
+ "node_modules/discord-giveaways": {
+ "version": "4.5.1",
+ "resolved": "https://registry.npmjs.org/discord-giveaways/-/discord-giveaways-4.5.1.tgz",
+ "integrity": "sha512-aSOD7IiCqfJ2sU1GbdH0EP/xwuXZW/h7+8RH6LzgfZaYy2V89O0qKwbe52Dy2ToymAexPhEGpDKZHrm6Vd0Jqw==",
+ "dependencies": {
+ "deepmerge": "^4.2.2",
+ "serialize-javascript": "^5.0.1"
+ }
+ },
+ "node_modules/discord-xp": {
+ "version": "1.1.16",
+ "resolved": "https://registry.npmjs.org/discord-xp/-/discord-xp-1.1.16.tgz",
+ "integrity": "sha512-A5g6utg+0fCLEUl6sS5J5mpr8DAXe5KxBFQnJf89KpQ71Itt0Hdv5/seOBCc6p239nuxEfW9n29peMlLCuvlrg==",
+ "dependencies": {
+ "mongoose": "^5.11.11"
+ }
+ },
+ "node_modules/discord.js": {
+ "version": "12.5.3",
+ "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-12.5.3.tgz",
+ "integrity": "sha512-D3nkOa/pCkNyn6jLZnAiJApw2N9XrIsXUAdThf01i7yrEuqUmDGc7/CexVWwEcgbQR97XQ+mcnqJpmJ/92B4Aw==",
+ "dependencies": {
+ "@discordjs/collection": "^0.1.6",
+ "@discordjs/form-data": "^3.0.1",
+ "abort-controller": "^3.0.0",
+ "node-fetch": "^2.6.1",
+ "prism-media": "^1.2.9",
+ "setimmediate": "^1.0.5",
+ "tweetnacl": "^1.0.3",
+ "ws": "^7.4.4"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "dev": true,
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/dom-serializer": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz",
+ "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==",
+ "dependencies": {
+ "domelementtype": "^2.0.1",
+ "entities": "^2.0.0"
+ }
+ },
+ "node_modules/dom-serializer/node_modules/domelementtype": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz",
+ "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fb55"
+ }
+ ]
+ },
+ "node_modules/dom-serializer/node_modules/entities": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
+ "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/domelementtype": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
+ "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w=="
+ },
+ "node_modules/domexception": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz",
+ "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==",
+ "dependencies": {
+ "webidl-conversions": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/domexception/node_modules/webidl-conversions": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz",
+ "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/domhandler": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz",
+ "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=",
+ "dependencies": {
+ "domelementtype": "1"
+ }
+ },
+ "node_modules/domutils": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
+ "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
+ "dependencies": {
+ "dom-serializer": "0",
+ "domelementtype": "1"
+ }
+ },
+ "node_modules/dotenv": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz",
+ "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/each": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/each/-/each-1.2.1.tgz",
+ "integrity": "sha512-POUbnWaseHgI8I+icHo3jAMrCqoLgVWaI7yqcQ0nat4q2f2BFUVGAndMOvr2UZoHAGAnQqotaM9RI4kZcjtAcg==",
+ "engines": {
+ "node": ">= 0.9.0"
+ }
+ },
+ "node_modules/ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
+ },
+ "node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
+ },
+ "node_modules/encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/encoding": {
+ "version": "0.1.13",
+ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz",
+ "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==",
+ "dependencies": {
+ "iconv-lite": "^0.6.2"
+ }
+ },
+ "node_modules/encoding/node_modules/iconv-lite": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
+ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "dependencies": {
+ "once": "^1.4.0"
+ }
+ },
+ "node_modules/enquirer": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz",
+ "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==",
+ "dev": true,
+ "dependencies": {
+ "ansi-colors": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/entities": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz",
+ "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=",
+ "dev": true
+ },
+ "node_modules/erela.js": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/erela.js/-/erela.js-2.3.3.tgz",
+ "integrity": "sha512-tzowGHLSodZr2j311csFSqm9lwE6plqeULTAwPwuRX9PQbXg4Ohdy/3MTMWrltiFAMSIG/5r9GQtTUt9Mqzhhw==",
+ "dependencies": {
+ "@discordjs/collection": "^0.1.6",
+ "petitio": "^1.1.0",
+ "ws": "^7.3.1"
+ }
+ },
+ "node_modules/erela.js-spotify": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/erela.js-spotify/-/erela.js-spotify-1.2.0.tgz",
+ "integrity": "sha512-FbkdVK7OquVzyNVl4aZ3AU6RHRrHzBpORGorK5q+L26y3hB/7ze9mQ7uiOa5PsskskELRWepoluqke3U8edbmQ==",
+ "dependencies": {
+ "axios": "^0.20.0",
+ "erela.js": "^2.2.0"
+ }
+ },
+ "node_modules/erela.js-spotify/node_modules/axios": {
+ "version": "0.20.0",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.20.0.tgz",
+ "integrity": "sha512-ANA4rr2BDcmmAQLOKft2fufrtuvlqR+cXNNinUmvfeSNCOF98PZL+7M/v1zIdGo7OLjEA9J2gXJL+j4zGsl0bA==",
+ "deprecated": "Critical security vulnerability fixed in v0.21.1. For more information, see https://github.com/axios/axios/pull/3410",
+ "dependencies": {
+ "follow-redirects": "^1.10.0"
+ }
+ },
+ "node_modules/escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
+ },
+ "node_modules/escape-latex": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/escape-latex/-/escape-latex-1.2.0.tgz",
+ "integrity": "sha512-nV5aVWW1K0wEiUIEdZ4erkGGH8mDxGyxSeqPzRNtWP7ataw+/olFObw7hujFWlVjNsaDFw5VZ5NzVSIqRgfTiw=="
+ },
+ "node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/escodegen": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz",
+ "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==",
+ "dependencies": {
+ "esprima": "^4.0.1",
+ "estraverse": "^5.2.0",
+ "esutils": "^2.0.2",
+ "optionator": "^0.8.1"
+ },
+ "bin": {
+ "escodegen": "bin/escodegen.js",
+ "esgenerate": "bin/esgenerate.js"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "optionalDependencies": {
+ "source-map": "~0.6.1"
+ }
+ },
+ "node_modules/escodegen/node_modules/estraverse": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
+ "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/escodegen/node_modules/levn": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
+ "dependencies": {
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/escodegen/node_modules/optionator": {
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
+ "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
+ "dependencies": {
+ "deep-is": "~0.1.3",
+ "fast-levenshtein": "~2.0.6",
+ "levn": "~0.3.0",
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2",
+ "word-wrap": "~1.2.3"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/escodegen/node_modules/prelude-ls": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/escodegen/node_modules/type-check": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
+ "dependencies": {
+ "prelude-ls": "~1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/eslint": {
+ "version": "7.30.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.30.0.tgz",
+ "integrity": "sha512-VLqz80i3as3NdloY44BQSJpFw534L9Oh+6zJOUaViV4JPd+DaHwutqP7tcpkW3YiXbK6s05RZl7yl7cQn+lijg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/code-frame": "7.12.11",
+ "@eslint/eslintrc": "^0.4.2",
+ "@humanwhocodes/config-array": "^0.5.0",
+ "ajv": "^6.10.0",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.2",
+ "debug": "^4.0.1",
+ "doctrine": "^3.0.0",
+ "enquirer": "^2.3.5",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^5.1.1",
+ "eslint-utils": "^2.1.0",
+ "eslint-visitor-keys": "^2.0.0",
+ "espree": "^7.3.1",
+ "esquery": "^1.4.0",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^6.0.1",
+ "functional-red-black-tree": "^1.0.1",
+ "glob-parent": "^5.1.2",
+ "globals": "^13.6.0",
+ "ignore": "^4.0.6",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "js-yaml": "^3.13.1",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.0.4",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.1",
+ "progress": "^2.0.0",
+ "regexpp": "^3.1.0",
+ "semver": "^7.2.1",
+ "strip-ansi": "^6.0.0",
+ "strip-json-comments": "^3.1.0",
+ "table": "^6.0.9",
+ "text-table": "^0.2.0",
+ "v8-compile-cache": "^2.0.3"
+ },
+ "bin": {
+ "eslint": "bin/eslint.js"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint-config-google": {
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-google/-/eslint-config-google-0.14.0.tgz",
+ "integrity": "sha512-WsbX4WbjuMvTdeVL6+J3rK1RGhCTqjsFjX7UMSMgZiyxxaNLkoJENbrGExzERFeoTpGw3F3FypTiWAP9ZXzkEw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "peerDependencies": {
+ "eslint": ">=5.16.0"
+ }
+ },
+ "node_modules/eslint-scope": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "dev": true,
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/eslint-utils": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
+ "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
+ "dev": true,
+ "dependencies": {
+ "eslint-visitor-keys": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/mysticatea"
+ }
+ },
+ "node_modules/eslint-utils/node_modules/eslint-visitor-keys": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/eslint-visitor-keys": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
+ "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/espree": {
+ "version": "7.3.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz",
+ "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==",
+ "dev": true,
+ "dependencies": {
+ "acorn": "^7.4.0",
+ "acorn-jsx": "^5.3.1",
+ "eslint-visitor-keys": "^1.3.0"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/espree/node_modules/eslint-visitor-keys": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "bin": {
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/esquery": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
+ "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
+ "dev": true,
+ "dependencies": {
+ "estraverse": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/esquery/node_modules/estraverse": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
+ "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/esrecurse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+ "dev": true,
+ "dependencies": {
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/esrecurse/node_modules/estraverse": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
+ "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "dev": true,
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/event-target-shim": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
+ "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/exit": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
+ "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/expand-template": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
+ "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/express": {
+ "version": "4.17.1",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
+ "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
+ "dependencies": {
+ "accepts": "~1.3.7",
+ "array-flatten": "1.1.1",
+ "body-parser": "1.19.0",
+ "content-disposition": "0.5.3",
+ "content-type": "~1.0.4",
+ "cookie": "0.4.0",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "finalhandler": "~1.1.2",
+ "fresh": "0.5.2",
+ "merge-descriptors": "1.0.1",
+ "methods": "~1.1.2",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "path-to-regexp": "0.1.7",
+ "proxy-addr": "~2.0.5",
+ "qs": "6.7.0",
+ "range-parser": "~1.2.1",
+ "safe-buffer": "5.1.2",
+ "send": "0.17.1",
+ "serve-static": "1.14.1",
+ "setprototypeof": "1.1.1",
+ "statuses": "~1.5.0",
+ "type-is": "~1.6.18",
+ "utils-merge": "1.0.1",
+ "vary": "~1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.10.0"
+ }
+ },
+ "node_modules/express-session": {
+ "version": "1.17.2",
+ "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.17.2.tgz",
+ "integrity": "sha512-mPcYcLA0lvh7D4Oqr5aNJFMtBMKPLl++OKKxkHzZ0U0oDq1rpKBnkR5f5vCHR26VeArlTOEF9td4x5IjICksRQ==",
+ "dependencies": {
+ "cookie": "0.4.1",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "~2.0.0",
+ "on-headers": "~1.0.2",
+ "parseurl": "~1.3.3",
+ "safe-buffer": "5.2.1",
+ "uid-safe": "~2.1.5"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/express-session/node_modules/cookie": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz",
+ "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/express-session/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/express-session/node_modules/depd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/express-session/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "node_modules/express-session/node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/express/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/express/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "node_modules/fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+ "dev": true
+ },
+ "node_modules/fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+ "dev": true
+ },
+ "node_modules/fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
+ },
+ "node_modules/figlet": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.5.0.tgz",
+ "integrity": "sha512-ZQJM4aifMpz6H19AW1VqvZ7l4pOE9p7i/3LyxgO2kp+PO/VcDYNqIHEMtkccqIhTXMKci4kjueJr/iCQEaT/Ww==",
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/file-entry-cache": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
+ "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
+ "dev": true,
+ "dependencies": {
+ "flat-cache": "^3.0.4"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/file-uri-to-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
+ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="
+ },
+ "node_modules/finalhandler": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
+ "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
+ "dependencies": {
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "statuses": "~1.5.0",
+ "unpipe": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/finalhandler/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/finalhandler/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "node_modules/flat-cache": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
+ "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+ "dev": true,
+ "dependencies": {
+ "flatted": "^3.1.0",
+ "rimraf": "^3.0.2"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/flatted": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.1.tgz",
+ "integrity": "sha512-OMQjaErSFHmHqZe+PSidH5n8j3O0F2DdnVh8JB4j4eUQ2k6KvB0qGfrKIhapvez5JerBbmWkaLYUYWISaESoXg==",
+ "dev": true
+ },
+ "node_modules/follow-redirects": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz",
+ "integrity": "sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/RubenVerborgh"
+ }
+ ],
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/form-data": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
+ "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/fortnite": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/fortnite/-/fortnite-4.3.2.tgz",
+ "integrity": "sha512-6BReElBAwP/3Gq6zEBn9gdQzrzWpMlumY9IF0suZgDshbzsS8dCDuV8JszDl1l1PVJwtzm2uexfUo9YtUqUV6Q==",
+ "dependencies": {
+ "node-fetch": "^2.3.0"
+ }
+ },
+ "node_modules/fortnite-9812": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/fortnite-9812/-/fortnite-9812-1.0.4.tgz",
+ "integrity": "sha512-TkdbPT1oTQ/GncnC5Sf4dVo6CLo4NJAtiU17rOUetcZ59nLAgNhceNkSqgMCYdYx6gCEB1A/9pYzm/JKOmgRcA==",
+ "dependencies": {
+ "node-fetch": "^2.3.0"
+ }
+ },
+ "node_modules/forwarded": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/fraction.js": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.1.tgz",
+ "integrity": "sha512-MHOhvvxHTfRFpF1geTK9czMIZ6xclsEor2wkIGYYq+PxcQqT7vStJqjhe6S1TenZrMZzo+wlqOufBDVepUEgPg==",
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "type": "patreon",
+ "url": "https://www.patreon.com/infusion"
+ }
+ },
+ "node_modules/fresh": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/fs": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz",
+ "integrity": "sha1-invTcYa23d84E/I4WLV+yq9eQdQ="
+ },
+ "node_modules/fs-constants": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
+ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="
+ },
+ "node_modules/fs-extra": {
+ "version": "0.26.7",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.26.7.tgz",
+ "integrity": "sha1-muH92UiXeY7at20JGM9C0MMYT6k=",
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^2.1.0",
+ "klaw": "^1.0.0",
+ "path-is-absolute": "^1.0.0",
+ "rimraf": "^2.2.8"
+ }
+ },
+ "node_modules/fs-extra/node_modules/rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/fs-minipass": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
+ "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+ },
+ "node_modules/functional-red-black-tree": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
+ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
+ "dev": true
+ },
+ "node_modules/gauge": {
+ "version": "2.7.4",
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
+ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
+ "dependencies": {
+ "aproba": "^1.0.3",
+ "console-control-strings": "^1.0.0",
+ "has-unicode": "^2.0.0",
+ "object-assign": "^4.1.0",
+ "signal-exit": "^3.0.0",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wide-align": "^1.1.0"
+ }
+ },
+ "node_modules/gauge/node_modules/ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/gauge/node_modules/strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dependencies": {
+ "ansi-regex": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/gifencoder": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/gifencoder/-/gifencoder-2.0.1.tgz",
+ "integrity": "sha512-x19DcyWY10SkshBpokqFOo/HBht9GB75evRYvaLMbez9p+yB/o+kt0fK9AwW59nFiAMs2UUQsjv1lX/hvu9Ong==",
+ "dependencies": {
+ "canvas": "^2.2.0"
+ }
+ },
+ "node_modules/github-from-package": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
+ "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4="
+ },
+ "node_modules/glob": {
+ "version": "7.1.7",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
+ "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/globals": {
+ "version": "13.10.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz",
+ "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==",
+ "dev": true,
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/goosecache": {
+ "version": "9.0.14",
+ "resolved": "https://registry.npmjs.org/goosecache/-/goosecache-9.0.14.tgz",
+ "integrity": "sha512-EWUYpaUnRBVFabApU/tKqFTq2VPdXqU75UeCUcv6cYgPtNxErVkYyBpguwOQtvI8FLELhraK/AU6E7nyeFIqpw==",
+ "dependencies": {
+ "@kensingtontech/recacheman": "^2.2.8",
+ "loglevel": "^1.7.1",
+ "sha1": "^1.1.1"
+ },
+ "peerDependencies": {
+ "mongoose": "^5.11.14"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.6",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
+ "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ=="
+ },
+ "node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/has-unicode": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
+ },
+ "node_modules/he": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
+ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
+ "bin": {
+ "he": "bin/he"
+ }
+ },
+ "node_modules/html-encoding-sniffer": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz",
+ "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==",
+ "dependencies": {
+ "whatwg-encoding": "^1.0.5"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/html-to-text": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/html-to-text/-/html-to-text-5.1.1.tgz",
+ "integrity": "sha512-Bci6bD/JIfZSvG4s0gW/9mMKwBRoe/1RWLxUME/d6WUSZCdY7T60bssf/jFf7EYXRyqU4P5xdClVqiYU0/ypdA==",
+ "dependencies": {
+ "he": "^1.2.0",
+ "htmlparser2": "^3.10.1",
+ "lodash": "^4.17.11",
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "html-to-text": "bin/cli.js"
+ },
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
+ "node_modules/html-to-text/node_modules/entities": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
+ "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w=="
+ },
+ "node_modules/html-to-text/node_modules/htmlparser2": {
+ "version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz",
+ "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==",
+ "dependencies": {
+ "domelementtype": "^1.3.1",
+ "domhandler": "^2.3.0",
+ "domutils": "^1.5.1",
+ "entities": "^1.1.1",
+ "inherits": "^2.0.1",
+ "readable-stream": "^3.1.1"
+ }
+ },
+ "node_modules/html-to-text/node_modules/readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/html-to-text/node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/html-to-text/node_modules/string_decoder": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+ "dependencies": {
+ "safe-buffer": "~5.2.0"
+ }
+ },
+ "node_modules/htmlparser2": {
+ "version": "3.8.3",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz",
+ "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=",
+ "dev": true,
+ "dependencies": {
+ "domelementtype": "1",
+ "domhandler": "2.3",
+ "domutils": "1.5",
+ "entities": "1.0",
+ "readable-stream": "1.1"
+ }
+ },
+ "node_modules/http-errors": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
+ "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
+ "dependencies": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.3",
+ "setprototypeof": "1.1.1",
+ "statuses": ">= 1.5.0 < 2",
+ "toidentifier": "1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/http-proxy-agent": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz",
+ "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==",
+ "dependencies": {
+ "@tootallnate/once": "1",
+ "agent-base": "6",
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/https-proxy-agent": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz",
+ "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==",
+ "dependencies": {
+ "agent-base": "6",
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/ignore": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
+ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/imageapi.js": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/imageapi.js/-/imageapi.js-1.7.0.tgz",
+ "integrity": "sha512-0OCfIWDQxCwqP5XjiumobcNbmv0rwatIOrhkQTikkJ8VjgohvaUh4yBHSKTlGHLyvPuKKNVfz4epR6Mm0xrHWQ==",
+ "dependencies": {
+ "node-fetch": "^2.6.1"
+ }
+ },
+ "node_modules/import-fresh": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "dev": true,
+ "dependencies": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.19"
+ }
+ },
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "node_modules/inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+ },
+ "node_modules/ini": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
+ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
+ },
+ "node_modules/ipaddr.js": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dependencies": {
+ "number-is-nan": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
+ "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
+ "dev": true,
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-potential-custom-element-name": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
+ "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ=="
+ },
+ "node_modules/isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "dev": true
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+ "dev": true
+ },
+ "node_modules/javascript-natural-sort": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz",
+ "integrity": "sha1-+eIwPUUH9tdDVac2ZNFED7Wg71k="
+ },
+ "node_modules/javascript-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-2.1.0.tgz",
+ "integrity": "sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg=="
+ },
+ "node_modules/js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "dev": true
+ },
+ "node_modules/js-yaml": {
+ "version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+ "dev": true,
+ "dependencies": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/jsdom": {
+ "version": "16.6.0",
+ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.6.0.tgz",
+ "integrity": "sha512-Ty1vmF4NHJkolaEmdjtxTfSfkdb8Ywarwf63f+F8/mDD1uLSSWDxDuMiZxiPhwunLrn9LOSVItWj4bLYsLN3Dg==",
+ "dependencies": {
+ "abab": "^2.0.5",
+ "acorn": "^8.2.4",
+ "acorn-globals": "^6.0.0",
+ "cssom": "^0.4.4",
+ "cssstyle": "^2.3.0",
+ "data-urls": "^2.0.0",
+ "decimal.js": "^10.2.1",
+ "domexception": "^2.0.1",
+ "escodegen": "^2.0.0",
+ "form-data": "^3.0.0",
+ "html-encoding-sniffer": "^2.0.1",
+ "http-proxy-agent": "^4.0.1",
+ "https-proxy-agent": "^5.0.0",
+ "is-potential-custom-element-name": "^1.0.1",
+ "nwsapi": "^2.2.0",
+ "parse5": "6.0.1",
+ "saxes": "^5.0.1",
+ "symbol-tree": "^3.2.4",
+ "tough-cookie": "^4.0.0",
+ "w3c-hr-time": "^1.0.2",
+ "w3c-xmlserializer": "^2.0.0",
+ "webidl-conversions": "^6.1.0",
+ "whatwg-encoding": "^1.0.5",
+ "whatwg-mimetype": "^2.3.0",
+ "whatwg-url": "^8.5.0",
+ "ws": "^7.4.5",
+ "xml-name-validator": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "canvas": "^2.5.0"
+ },
+ "peerDependenciesMeta": {
+ "canvas": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jsdom/node_modules/acorn": {
+ "version": "8.4.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz",
+ "integrity": "sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/jshint": {
+ "version": "2.13.0",
+ "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.13.0.tgz",
+ "integrity": "sha512-Nd+md9wIeyfDK+RGrbOBzwLONSTdihGMtyGYU/t7zYcN2EgUa4iuY3VK2oxtPYrW5ycTj18iC+UbhNTxe4C66g==",
+ "dev": true,
+ "dependencies": {
+ "cli": "~1.0.0",
+ "console-browserify": "1.1.x",
+ "exit": "0.1.x",
+ "htmlparser2": "3.8.x",
+ "lodash": "~4.17.21",
+ "minimatch": "~3.0.2",
+ "shelljs": "0.3.x",
+ "strip-json-comments": "1.0.x"
+ },
+ "bin": {
+ "jshint": "bin/jshint"
+ }
+ },
+ "node_modules/jshint/node_modules/strip-json-comments": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz",
+ "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=",
+ "dev": true,
+ "bin": {
+ "strip-json-comments": "cli.js"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true
+ },
+ "node_modules/json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
+ "dev": true
+ },
+ "node_modules/jsonfile": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
+ "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/kareem": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.2.tgz",
+ "integrity": "sha512-STHz9P7X2L4Kwn72fA4rGyqyXdmrMSdxqHx9IXon/FXluXieaFA6KJ2upcHAHxQPQ0LeM/OjLrhFxifHewOALQ=="
+ },
+ "node_modules/klaw": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz",
+ "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=",
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.9"
+ }
+ },
+ "node_modules/leven": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
+ "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/levn": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+ "dev": true,
+ "dependencies": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/lodash": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+ },
+ "node_modules/lodash.clonedeep": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
+ "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=",
+ "dev": true
+ },
+ "node_modules/lodash.merge": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
+ "dev": true
+ },
+ "node_modules/lodash.truncate": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz",
+ "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=",
+ "dev": true
+ },
+ "node_modules/loglevel": {
+ "version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz",
+ "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==",
+ "engines": {
+ "node": ">= 0.6.0"
+ },
+ "funding": {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/loglevel"
+ }
+ },
+ "node_modules/lru-cache": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
+ "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
+ "dependencies": {
+ "pseudomap": "^1.0.2",
+ "yallist": "^2.1.2"
+ }
+ },
+ "node_modules/lyrics-finder": {
+ "version": "21.7.0",
+ "resolved": "https://registry.npmjs.org/lyrics-finder/-/lyrics-finder-21.7.0.tgz",
+ "integrity": "sha512-AMaJ+MdbdemYOWM1Kxd/vzn23OD66/fdemaJWN9dU0qsxK6d09rODSphygAvaGka6mgfHaFlHN+ETHv/d60ftw==",
+ "dependencies": {
+ "encoding": "^0.1.13",
+ "html-to-text": "^5.1.1",
+ "node-fetch": "^2.6.0"
+ },
+ "bin": {
+ "lyrics-finder": "src/bin.js"
+ }
+ },
+ "node_modules/m3u8stream": {
+ "version": "0.8.4",
+ "resolved": "https://registry.npmjs.org/m3u8stream/-/m3u8stream-0.8.4.tgz",
+ "integrity": "sha512-sco80Db+30RvcaIOndenX6E6oQNgTiBKeJbFPc+yDXwPQIkryfboEbCvXPlBRq3mQTCVPQO93TDVlfRwqpD35w==",
+ "dependencies": {
+ "miniget": "^4.0.0",
+ "sax": "^1.2.4"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/make-dir": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
+ "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
+ "dependencies": {
+ "semver": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/make-dir/node_modules/semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/mathjs": {
+ "version": "9.4.4",
+ "resolved": "https://registry.npmjs.org/mathjs/-/mathjs-9.4.4.tgz",
+ "integrity": "sha512-5EEJXnWOzLDgMHSFyw623nH+MTBZxquWwXtrzTsingOouJJ6UZG2VNO1lwH31IMt9aMno1axO6TYleIP4YSDaQ==",
+ "dependencies": {
+ "@babel/runtime": "^7.14.6",
+ "complex.js": "^2.0.15",
+ "decimal.js": "^10.3.1",
+ "escape-latex": "^1.2.0",
+ "fraction.js": "^4.1.1",
+ "javascript-natural-sort": "^0.7.1",
+ "seedrandom": "^3.0.5",
+ "tiny-emitter": "^2.1.0",
+ "typed-function": "^2.0.0"
+ },
+ "bin": {
+ "mathjs": "bin/cli.js"
+ },
+ "engines": {
+ "node": ">= 12"
+ }
+ },
+ "node_modules/media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/memory-pager": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz",
+ "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==",
+ "optional": true
+ },
+ "node_modules/merge-descriptors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+ "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
+ },
+ "node_modules/methods": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
+ "bin": {
+ "mime": "cli.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/mime-db": {
+ "version": "1.48.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz",
+ "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "2.1.31",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz",
+ "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==",
+ "dependencies": {
+ "mime-db": "1.48.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mimic-response": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz",
+ "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/miniget": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/miniget/-/miniget-4.2.1.tgz",
+ "integrity": "sha512-O/DduzDR6f+oDtVype9S/Qu5hhnx73EDYGyZKwU/qN82lehFZdfhoa4DT51SpsO+8epYrB3gcRmws56ROfTIoQ==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/minimist": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
+ },
+ "node_modules/minipass": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz",
+ "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/minipass/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ },
+ "node_modules/minizlib": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
+ "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
+ "dependencies": {
+ "minipass": "^3.0.0",
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/minizlib/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ },
+ "node_modules/mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/mkdirp-classic": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
+ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A=="
+ },
+ "node_modules/moment": {
+ "version": "2.29.1",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz",
+ "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/moment-duration-format": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/moment-duration-format/-/moment-duration-format-2.3.2.tgz",
+ "integrity": "sha512-cBMXjSW+fjOb4tyaVHuaVE/A5TqkukDWiOfxxAjY+PEqmmBQlLwn+8OzwPiG3brouXKY5Un4pBjAeB6UToXHaQ=="
+ },
+ "node_modules/mongodb": {
+ "version": "3.6.8",
+ "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.6.8.tgz",
+ "integrity": "sha512-sDjJvI73WjON1vapcbyBD3Ao9/VN3TKYY8/QX9EPbs22KaCSrQ5rXo5ZZd44tWJ3wl3FlnrFZ+KyUtNH6+1ZPQ==",
+ "dependencies": {
+ "bl": "^2.2.1",
+ "bson": "^1.1.4",
+ "denque": "^1.4.1",
+ "optional-require": "^1.0.3",
+ "safe-buffer": "^5.1.2"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "optionalDependencies": {
+ "saslprep": "^1.0.0"
+ },
+ "peerDependenciesMeta": {
+ "aws4": {
+ "optional": true
+ },
+ "bson-ext": {
+ "optional": true
+ },
+ "kerberos": {
+ "optional": true
+ },
+ "mongodb-client-encryption": {
+ "optional": true
+ },
+ "mongodb-extjson": {
+ "optional": true
+ },
+ "snappy": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/mongoose": {
+ "version": "5.13.2",
+ "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.13.2.tgz",
+ "integrity": "sha512-sBUKJGpdwZCq9102Lj6ZOaLcW4z/T4TI9aGWrNX5ZlICwChKWG4Wo5qriLImdww3H7bETPW9vYtSiADNlA4wSQ==",
+ "dependencies": {
+ "@types/mongodb": "^3.5.27",
+ "@types/node": "14.x || 15.x",
+ "bson": "^1.1.4",
+ "kareem": "2.3.2",
+ "mongodb": "3.6.8",
+ "mongoose-legacy-pluralize": "1.0.2",
+ "mpath": "0.8.3",
+ "mquery": "3.2.5",
+ "ms": "2.1.2",
+ "regexp-clone": "1.0.0",
+ "safe-buffer": "5.2.1",
+ "sift": "13.5.2",
+ "sliced": "1.0.1"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mongoose"
+ }
+ },
+ "node_modules/mongoose-legacy-pluralize": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz",
+ "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ==",
+ "peerDependencies": {
+ "mongoose": "*"
+ }
+ },
+ "node_modules/mongoose/node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "node_modules/mongoose/node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/mpath": {
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.8.3.tgz",
+ "integrity": "sha512-eb9rRvhDltXVNL6Fxd2zM9D4vKBxjVVQNLNijlj7uoXUy19zNDsIif5zR+pWmPCWNKwAtqyo4JveQm4nfD5+eA==",
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/mquery": {
+ "version": "3.2.5",
+ "resolved": "https://registry.npmjs.org/mquery/-/mquery-3.2.5.tgz",
+ "integrity": "sha512-VjOKHHgU84wij7IUoZzFRU07IAxd5kWJaDmyUzQlbjHjyoeK5TNeeo8ZsFDtTYnSgpW6n/nMNIHvE3u8Lbrf4A==",
+ "dependencies": {
+ "bluebird": "3.5.1",
+ "debug": "3.1.0",
+ "regexp-clone": "^1.0.0",
+ "safe-buffer": "5.1.2",
+ "sliced": "1.0.1"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/mquery/node_modules/debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/mquery/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
+ },
+ "node_modules/nan": {
+ "version": "2.14.2",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz",
+ "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ=="
+ },
+ "node_modules/napi-build-utils": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz",
+ "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg=="
+ },
+ "node_modules/natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
+ "dev": true
+ },
+ "node_modules/negotiator": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
+ "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/node-abi": {
+ "version": "2.30.0",
+ "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.0.tgz",
+ "integrity": "sha512-g6bZh3YCKQRdwuO/tSZZYJAw622SjsRfJ2X0Iy4sSOHZ34/sPPdVBn8fev2tj7njzLwuqPw9uMtGsGkO5kIQvg==",
+ "dependencies": {
+ "semver": "^5.4.1"
+ }
+ },
+ "node_modules/node-abi/node_modules/semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/node-fetch": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
+ "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==",
+ "engines": {
+ "node": "4.x || >=6.0.0"
+ }
+ },
+ "node_modules/node-superfetch": {
+ "version": "0.1.11",
+ "resolved": "https://registry.npmjs.org/node-superfetch/-/node-superfetch-0.1.11.tgz",
+ "integrity": "sha512-984lO43EvDtjBOpVXDqnR2L5+pVt+qWfqIE6H7Sl21BoIz26OwSKxBnO9ZmJkYXAimR64MUPiz6tn5hySy1d0Q==",
+ "dependencies": {
+ "form-data": "^3.0.0",
+ "node-fetch": "^2.6.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/nopt": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
+ "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==",
+ "dependencies": {
+ "abbrev": "1"
+ },
+ "bin": {
+ "nopt": "bin/nopt.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/npmlog": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
+ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
+ "dependencies": {
+ "are-we-there-yet": "~1.1.2",
+ "console-control-strings": "~1.1.0",
+ "gauge": "~2.7.3",
+ "set-blocking": "~2.0.0"
+ }
+ },
+ "node_modules/number-is-nan": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/nwsapi": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz",
+ "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ=="
+ },
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/on-finished": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+ "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
+ "dependencies": {
+ "ee-first": "1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/on-headers": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
+ "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/optional-require": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/optional-require/-/optional-require-1.0.3.tgz",
+ "integrity": "sha512-RV2Zp2MY2aeYK5G+B/Sps8lW5NHAzE5QClbFP15j+PWmP+T9PxlJXBOOLoSAdgwFvS4t0aMR4vpedMkbHfh0nA==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/optionator": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
+ "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
+ "dev": true,
+ "dependencies": {
+ "deep-is": "^0.1.3",
+ "fast-levenshtein": "^2.0.6",
+ "levn": "^0.4.1",
+ "prelude-ls": "^1.2.1",
+ "type-check": "^0.4.0",
+ "word-wrap": "^1.2.3"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "dev": true,
+ "dependencies": {
+ "callsites": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/parse-redis-url": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/parse-redis-url/-/parse-redis-url-0.0.2.tgz",
+ "integrity": "sha1-E8kqCrvm8lEgBqjEnebLe43Usnc="
+ },
+ "node_modules/parse5": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
+ "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw=="
+ },
+ "node_modules/parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-to-regexp": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+ "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
+ },
+ "node_modules/petitio": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/petitio/-/petitio-1.3.2.tgz",
+ "integrity": "sha512-hbbT+rOvovz39ZneGW+C8B4YsKH20KLXYVDT/IzSUxaY8H7al/TO+vFCm+H5cnYe62gIqF9ak5p8OJktV/I0Ig==",
+ "engines": {
+ "node": ">=12.3.0"
+ }
+ },
+ "node_modules/prebuild-install": {
+ "version": "6.1.3",
+ "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.1.3.tgz",
+ "integrity": "sha512-iqqSR84tNYQUQHRXalSKdIaM8Ov1QxOVuBNWI7+BzZWv6Ih9k75wOnH1rGQ9WWTaaLkTpxWKIciOF0KyfM74+Q==",
+ "dependencies": {
+ "detect-libc": "^1.0.3",
+ "expand-template": "^2.0.3",
+ "github-from-package": "0.0.0",
+ "minimist": "^1.2.3",
+ "mkdirp-classic": "^0.5.3",
+ "napi-build-utils": "^1.0.1",
+ "node-abi": "^2.21.0",
+ "npmlog": "^4.0.1",
+ "pump": "^3.0.0",
+ "rc": "^1.2.7",
+ "simple-get": "^3.0.3",
+ "tar-fs": "^2.0.0",
+ "tunnel-agent": "^0.6.0"
+ },
+ "bin": {
+ "prebuild-install": "bin.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/prelude-ls": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/prettier": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.2.tgz",
+ "integrity": "sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ==",
+ "dev": true,
+ "bin": {
+ "prettier": "bin-prettier.js"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/prism-media": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.3.1.tgz",
+ "integrity": "sha512-nyYAa3KB4qteJIqdguKmwxTJgy55xxUtkJ3uRnOvO5jO+frci+9zpRXw6QZVcfDeva3S654fU9+26P2OSTzjHw==",
+ "peerDependencies": {
+ "@discordjs/opus": "^0.5.0",
+ "ffmpeg-static": "^4.2.7 || ^3.0.0 || ^2.4.0",
+ "node-opus": "^0.3.3",
+ "opusscript": "^0.0.8"
+ },
+ "peerDependenciesMeta": {
+ "@discordjs/opus": {
+ "optional": true
+ },
+ "ffmpeg-static": {
+ "optional": true
+ },
+ "node-opus": {
+ "optional": true
+ },
+ "opusscript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
+ },
+ "node_modules/progress": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/proxy-addr": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
+ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
+ "dependencies": {
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/pseudomap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
+ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
+ },
+ "node_modules/psl": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
+ "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
+ },
+ "node_modules/pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "node_modules/punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/qs": {
+ "version": "6.7.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
+ "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
+ "node_modules/quick.db": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/quick.db/-/quick.db-7.1.3.tgz",
+ "integrity": "sha512-0S1fVb9OAZGhkI4ZIc5Oe4yWMwhz20xSsziwd6+yGWKKMsPt+XOfj/gD5CesGxd2WdqBkZFBiP8ZqWDu55HLHA==",
+ "dependencies": {
+ "better-sqlite3": "^7.1.1",
+ "lodash": "^4.17.20"
+ }
+ },
+ "node_modules/quickchart-js": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/quickchart-js/-/quickchart-js-1.2.0.tgz",
+ "integrity": "sha512-7p28IW3S8wOvw4NppwrC8Lm3uxhNdgafM6uZ73mUucQMyaZOBY1farkPhcn8QLpX2FnBdk0gy+ibKB12Wy8Vqw==",
+ "dependencies": {
+ "axios": "^0.21.1",
+ "javascript-stringify": "^2.0.1"
+ }
+ },
+ "node_modules/random-bytes": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz",
+ "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/randombytes": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+ "dependencies": {
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "node_modules/range-parser": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/raw-body": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
+ "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
+ "dependencies": {
+ "bytes": "3.1.0",
+ "http-errors": "1.7.2",
+ "iconv-lite": "0.4.24",
+ "unpipe": "1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/rc": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+ "dependencies": {
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ },
+ "bin": {
+ "rc": "cli.js"
+ }
+ },
+ "node_modules/rc/node_modules/strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/readable-stream": {
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+ "dev": true,
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "node_modules/recacheman-file": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/recacheman-file/-/recacheman-file-0.2.5.tgz",
+ "integrity": "sha512-wG3NrjR/+QTGVjV+omK8n81LPHNzhfHNiMGx25upFUX3FBmGBbtPZCLFlwc2wUDt4HIReKQ3sIjOQVBUE8/T5Q==",
+ "dependencies": {
+ "fs-extra": "~0.26.2",
+ "sanitize-filename": "^1.5.3"
+ }
+ },
+ "node_modules/recacheman-memory": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/recacheman-memory/-/recacheman-memory-1.1.2.tgz",
+ "integrity": "sha512-FqaAJ0Rn0yZaGPPKI6aAb6z5PbPLKGhlZnCWRB2vYzBtPOx3c/PhCT3B1jt1zjkVjDNLs06+NGRoK3GY/A0qsw==",
+ "dependencies": {
+ "lru-cache": "~4.1.x"
+ }
+ },
+ "node_modules/reconlx": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/reconlx/-/reconlx-1.3.3.tgz",
+ "integrity": "sha512-X16C+MByiUERk+9Y62TA+L/u4UoaLAWr97ml9Eu8ON0jqXP9fngiMdqMZMKsVizMrLtyRwVOnerH7gqLX/b34Q==",
+ "dependencies": {
+ "discord.js": "^12.5.1",
+ "jsdom": "^16.4.0",
+ "mongoose": "^5.10.15",
+ "ms": "^2.1.2"
+ }
+ },
+ "node_modules/redis": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/redis/-/redis-3.1.2.tgz",
+ "integrity": "sha512-grn5KoZLr/qrRQVwoSkmzdbw6pwF+/rwODtrOr6vuBRiR/f3rjSTGupbF90Zpqm2oenix8Do6RV7pYEkGwlKkw==",
+ "dependencies": {
+ "denque": "^1.5.0",
+ "redis-commands": "^1.7.0",
+ "redis-errors": "^1.2.0",
+ "redis-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/node-redis"
+ }
+ },
+ "node_modules/redis-commands": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.7.0.tgz",
+ "integrity": "sha512-nJWqw3bTFy21hX/CPKHth6sfhZbdiHP6bTawSgQBlKOVRG7EZkfHbbHwQJnrE4vsQf0CMNE+3gJ4Fmm16vdVlQ=="
+ },
+ "node_modules/redis-errors": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz",
+ "integrity": "sha1-62LSrbFeTq9GEMBK/hUpOEJQq60=",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/redis-parser": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz",
+ "integrity": "sha1-tm2CjNyv5rS4pCin3vTGvKwxyLQ=",
+ "dependencies": {
+ "redis-errors": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/regenerator-runtime": {
+ "version": "0.13.7",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz",
+ "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew=="
+ },
+ "node_modules/regexp-clone": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz",
+ "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw=="
+ },
+ "node_modules/regexpp": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
+ "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/mysticatea"
+ }
+ },
+ "node_modules/require-from-string": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ },
+ "node_modules/safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+ },
+ "node_modules/sanitize-filename": {
+ "version": "1.6.3",
+ "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz",
+ "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==",
+ "dependencies": {
+ "truncate-utf8-bytes": "^1.0.0"
+ }
+ },
+ "node_modules/saslprep": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz",
+ "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==",
+ "optional": true,
+ "dependencies": {
+ "sparse-bitfield": "^3.0.3"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/sax": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
+ },
+ "node_modules/saxes": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz",
+ "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==",
+ "dependencies": {
+ "xmlchars": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/seedrandom": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz",
+ "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg=="
+ },
+ "node_modules/semver": {
+ "version": "7.3.5",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
+ "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/semver/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/semver/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ },
+ "node_modules/send": {
+ "version": "0.17.1",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
+ "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
+ "dependencies": {
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "destroy": "~1.0.4",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "fresh": "0.5.2",
+ "http-errors": "~1.7.2",
+ "mime": "1.6.0",
+ "ms": "2.1.1",
+ "on-finished": "~2.3.0",
+ "range-parser": "~1.2.1",
+ "statuses": "~1.5.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/send/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/send/node_modules/debug/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "node_modules/send/node_modules/ms": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+ "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
+ },
+ "node_modules/serialize-javascript": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz",
+ "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==",
+ "dependencies": {
+ "randombytes": "^2.1.0"
+ }
+ },
+ "node_modules/serve-static": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
+ "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
+ "dependencies": {
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.3",
+ "send": "0.17.1"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/set-blocking": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
+ },
+ "node_modules/setimmediate": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
+ "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU="
+ },
+ "node_modules/setprototypeof": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
+ "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
+ },
+ "node_modules/sha1": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/sha1/-/sha1-1.1.1.tgz",
+ "integrity": "sha1-rdqnqTFo85PxnrKxUJFhjicA+Eg=",
+ "dependencies": {
+ "charenc": ">= 0.0.1",
+ "crypt": ">= 0.0.1"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dev": true,
+ "dependencies": {
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shelljs": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz",
+ "integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=",
+ "dev": true,
+ "bin": {
+ "shjs": "bin/shjs"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/sift": {
+ "version": "13.5.2",
+ "resolved": "https://registry.npmjs.org/sift/-/sift-13.5.2.tgz",
+ "integrity": "sha512-+gxdEOMA2J+AI+fVsCqeNn7Tgx3M9ZN9jdi95939l1IJ8cZsqS8sqpJyOkic2SJk+1+98Uwryt/gL6XDaV+UZA=="
+ },
+ "node_modules/signal-exit": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
+ "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA=="
+ },
+ "node_modules/simple-concat": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
+ "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/simple-get": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz",
+ "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==",
+ "dependencies": {
+ "decompress-response": "^4.2.0",
+ "once": "^1.3.1",
+ "simple-concat": "^1.0.0"
+ }
+ },
+ "node_modules/slice-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
+ "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/slice-ansi?sponsor=1"
+ }
+ },
+ "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/sliced": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz",
+ "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E="
+ },
+ "node_modules/soundcloud-downloader": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/soundcloud-downloader/-/soundcloud-downloader-0.2.4.tgz",
+ "integrity": "sha512-ncXi9AC3Crs8azBBUw0u5n6RyJpuV3QhBPDkI8dik3e9r7l6L6mmmrdGgKITsOwEuj3rxoTdFvSAP4pv2VorRw==",
+ "dependencies": {
+ "@babel/runtime": "^7.10.3",
+ "axios": "^0.21.0",
+ "dotenv": "^8.2.0",
+ "m3u8stream": "^0.8.0",
+ "soundcloud-key-fetch": "^1.0.10"
+ }
+ },
+ "node_modules/soundcloud-downloader/node_modules/dotenv": {
+ "version": "8.6.0",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz",
+ "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/soundcloud-key-fetch": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/soundcloud-key-fetch/-/soundcloud-key-fetch-1.0.11.tgz",
+ "integrity": "sha512-ofnXB3yeHGVKnFKEMBP/kIJzGu1SduQzJc+zmkPbKgelvYNsEU/aTGD0PlhmyZquaCkTGByF8CEPRrAnt7ki4g=="
+ },
+ "node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sparse-bitfield": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
+ "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=",
+ "optional": true,
+ "dependencies": {
+ "memory-pager": "^1.0.2"
+ }
+ },
+ "node_modules/sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+ "dev": true
+ },
+ "node_modules/statuses": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+ "dev": true
+ },
+ "node_modules/string-toolkit": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/string-toolkit/-/string-toolkit-1.4.1.tgz",
+ "integrity": "sha512-9ggIBwGTg6AS4Hg8u1EjtxUqZaIoIU004GAS+3D8zFJ6Ktkax0004kkmj2Re9FHN7670/YeDvR/wOg1/eo1Icg=="
+ },
+ "node_modules/string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dependencies": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/string-width/node_modules/ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/string-width/node_modules/strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dependencies": {
+ "ansi-regex": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/superscript-text": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/superscript-text/-/superscript-text-1.0.0.tgz",
+ "integrity": "sha1-58snUlZzYN9QvrBhDOjfPXHY39g="
+ },
+ "node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/symbol-tree": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
+ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="
+ },
+ "node_modules/table": {
+ "version": "6.7.1",
+ "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz",
+ "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==",
+ "dev": true,
+ "dependencies": {
+ "ajv": "^8.0.1",
+ "lodash.clonedeep": "^4.5.0",
+ "lodash.truncate": "^4.4.2",
+ "slice-ansi": "^4.0.0",
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/table/node_modules/ajv": {
+ "version": "8.6.1",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.1.tgz",
+ "integrity": "sha512-42VLtQUOLefAvKFAQIxIZDaThq6om/PrfP0CYk3/vn+y4BMNkKnbli8ON2QCiHov4KkzOSJ/xSoBJdayiiYvVQ==",
+ "dev": true,
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/table/node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/table/node_modules/json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "dev": true
+ },
+ "node_modules/table/node_modules/string-width": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
+ "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
+ "dev": true,
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/tar": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz",
+ "integrity": "sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==",
+ "dependencies": {
+ "chownr": "^2.0.0",
+ "fs-minipass": "^2.0.0",
+ "minipass": "^3.0.0",
+ "minizlib": "^2.1.1",
+ "mkdirp": "^1.0.3",
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/tar-fs": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
+ "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
+ "dependencies": {
+ "chownr": "^1.1.1",
+ "mkdirp-classic": "^0.5.2",
+ "pump": "^3.0.0",
+ "tar-stream": "^2.1.4"
+ }
+ },
+ "node_modules/tar-fs/node_modules/chownr": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
+ },
+ "node_modules/tar-stream": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
+ "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
+ "dependencies": {
+ "bl": "^4.0.3",
+ "end-of-stream": "^1.4.1",
+ "fs-constants": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.1.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/tar-stream/node_modules/bl": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
+ "dependencies": {
+ "buffer": "^5.5.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
+ }
+ },
+ "node_modules/tar-stream/node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ },
+ "node_modules/tar-stream/node_modules/readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/tar-stream/node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/tar-stream/node_modules/string_decoder": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+ "dependencies": {
+ "safe-buffer": "~5.2.0"
+ }
+ },
+ "node_modules/tar/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ },
+ "node_modules/text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
+ "dev": true
+ },
+ "node_modules/tiny-emitter": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz",
+ "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q=="
+ },
+ "node_modules/toidentifier": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
+ "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==",
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
+ "node_modules/tough-cookie": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz",
+ "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==",
+ "dependencies": {
+ "psl": "^1.1.33",
+ "punycode": "^2.1.1",
+ "universalify": "^0.1.2"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/tr46": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz",
+ "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==",
+ "dependencies": {
+ "punycode": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/truncate-utf8-bytes": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz",
+ "integrity": "sha1-QFkjkJWS1W94pYGENLC3hInKXys=",
+ "dependencies": {
+ "utf8-byte-length": "^1.0.1"
+ }
+ },
+ "node_modules/tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+ "dependencies": {
+ "safe-buffer": "^5.0.1"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/tweetnacl": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz",
+ "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw=="
+ },
+ "node_modules/twemoji-parser": {
+ "version": "13.1.0",
+ "resolved": "https://registry.npmjs.org/twemoji-parser/-/twemoji-parser-13.1.0.tgz",
+ "integrity": "sha512-AQOzLJpYlpWMy8n+0ATyKKZzWlZBJN+G0C+5lhX7Ftc2PeEVdUU/7ns2Pn2vVje26AIZ/OHwFoUbdv6YYD/wGg=="
+ },
+ "node_modules/type-check": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+ "dev": true,
+ "dependencies": {
+ "prelude-ls": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/type-is": {
+ "version": "1.6.18",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+ "dependencies": {
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.24"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/typed-function": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/typed-function/-/typed-function-2.0.0.tgz",
+ "integrity": "sha512-Hhy1Iwo/e4AtLZNK10ewVVcP2UEs408DS35ubP825w/YgSBK1KVLwALvvIG4yX75QJrxjCpcWkzkVRB0BwwYlA==",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/uid-safe": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz",
+ "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==",
+ "dependencies": {
+ "random-bytes": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
+ "node_modules/unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dev": true,
+ "dependencies": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "node_modules/utf8-byte-length": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz",
+ "integrity": "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E="
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+ },
+ "node_modules/utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/v8-compile-cache": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
+ "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
+ "dev": true
+ },
+ "node_modules/vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/w3c-hr-time": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz",
+ "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==",
+ "dependencies": {
+ "browser-process-hrtime": "^1.0.0"
+ }
+ },
+ "node_modules/w3c-xmlserializer": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz",
+ "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==",
+ "dependencies": {
+ "xml-name-validator": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/webidl-conversions": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz",
+ "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==",
+ "engines": {
+ "node": ">=10.4"
+ }
+ },
+ "node_modules/weky": {
+ "version": "1.9.9",
+ "resolved": "https://registry.npmjs.org/weky/-/weky-1.9.9.tgz",
+ "integrity": "sha512-ldaCKoTC1NRv296B7trgDfocifs+hi8YvXeaitjZnTg7LxxIjZZX66NLNala6HtjEeH/dc2b0h9nrDB2DpY+/A==",
+ "dependencies": {
+ "discord-buttons": "^3.0.1",
+ "mathjs": "^9.4.2",
+ "ms": "^2.1.3",
+ "node-fetch": "^2.6.1"
+ }
+ },
+ "node_modules/whatwg-encoding": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz",
+ "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==",
+ "dependencies": {
+ "iconv-lite": "0.4.24"
+ }
+ },
+ "node_modules/whatwg-mimetype": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz",
+ "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g=="
+ },
+ "node_modules/whatwg-url": {
+ "version": "8.7.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz",
+ "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==",
+ "dependencies": {
+ "lodash": "^4.7.0",
+ "tr46": "^2.1.0",
+ "webidl-conversions": "^6.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/wide-align": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
+ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
+ "dependencies": {
+ "string-width": "^1.0.2 || 2"
+ }
+ },
+ "node_modules/word-wrap": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
+ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ },
+ "node_modules/ws": {
+ "version": "7.5.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz",
+ "integrity": "sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==",
+ "engines": {
+ "node": ">=8.3.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": "^5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/xml-name-validator": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz",
+ "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw=="
+ },
+ "node_modules/xmlchars": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
+ "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw=="
+ },
+ "node_modules/yallist": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
+ }
+ },
+ "dependencies": {
+ "@babel/code-frame": {
+ "version": "7.12.11",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz",
+ "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==",
+ "dev": true,
"requires": {
- "@babel/helper-validator-identifier": "^7.14.0",
- "to-fast-properties": "^2.0.0"
+ "@babel/highlight": "^7.10.4"
+ }
+ },
+ "@babel/helper-validator-identifier": {
+ "version": "7.14.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz",
+ "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==",
+ "dev": true
+ },
+ "@babel/highlight": {
+ "version": "7.14.5",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz",
+ "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.14.5",
+ "chalk": "^2.0.0",
+ "js-tokens": "^4.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "@babel/runtime": {
+ "version": "7.14.6",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.6.tgz",
+ "integrity": "sha512-/PCB2uJ7oM44tz8YhC4Z/6PeOKXp4K588f+5M3clr1M4zbqztlo0XEfJ2LEzj/FgwfgGcIdl8n7YYjTCI0BYwg==",
+ "requires": {
+ "regenerator-runtime": "^0.13.4"
}
},
"@canvacord/assets": {
@@ -44,17 +4574,6 @@
"twemoji-parser": "^13.0.0"
}
},
- "@derhuerst/http-basic": {
- "version": "8.2.1",
- "resolved": "https://registry.npmjs.org/@derhuerst/http-basic/-/http-basic-8.2.1.tgz",
- "integrity": "sha512-Rmn7qQQulw2sxJ8qGfZ7OuqMWuhz8V+L5xnYKMF5cXVcYqmgWqlVEAme90pF7Ya8OVhxVxLmhh0rI2k6t7ITWw==",
- "requires": {
- "caseless": "^0.12.0",
- "concat-stream": "^1.6.2",
- "http-response-object": "^3.0.1",
- "parse-cache-control": "^1.0.1"
- }
- },
"@discordjs/collection": {
"version": "0.1.6",
"resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.1.6.tgz",
@@ -70,110 +4589,40 @@
"mime-types": "^2.1.12"
}
},
- "@discordjs/opus": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/@discordjs/opus/-/opus-0.5.0.tgz",
- "integrity": "sha512-s3XUJ7dYV+UvYUiqkgs7sq8JKWMhQrHcwDECP2SKdxtL9h9qGa4mr0IR6XnZw+G/Sogx8c+HRS7+wEspkqk3zA==",
+ "@eslint/eslintrc": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.2.tgz",
+ "integrity": "sha512-8nmGq/4ycLpIwzvhI4tNDmQztZ8sp+hI7cyG8i1nQDhkAbRzHpXPidRAHlNvCZQpJTKw5ItIpMw9RSToGF00mg==",
+ "dev": true,
"requires": {
- "@discordjs/node-pre-gyp": "^0.3.2",
- "node-addon-api": "^3.1.0"
- },
- "dependencies": {
- "@discordjs/node-pre-gyp": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/@discordjs/node-pre-gyp/-/node-pre-gyp-0.3.2.tgz",
- "integrity": "sha512-NqRvPz0X+/3h+6ClElrSfvsD5XEG9ljYzXhzyo81DslVkVKzmmxX9FLs3MUr9qI7p53DG1eYru633qosrOqMyA==",
- "requires": {
- "detect-libc": "^1.0.3",
- "http-proxy-agent": "^4.0.1",
- "make-dir": "^3.1.0",
- "node-fetch": "^2.6.1",
- "nopt": "^5.0.0",
- "npmlog": "^4.1.2",
- "rimraf": "^3.0.2",
- "semver": "^7.3.4",
- "tar": "^6.1.0"
- }
- },
- "chownr": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
- "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ=="
- },
- "fs-minipass": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
- "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
- "requires": {
- "minipass": "^3.0.0"
- }
- },
- "minipass": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz",
- "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==",
- "requires": {
- "yallist": "^4.0.0"
- }
- },
- "minizlib": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
- "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
- "requires": {
- "minipass": "^3.0.0",
- "yallist": "^4.0.0"
- }
- },
- "mkdirp": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
- "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="
- },
- "nopt": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
- "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==",
- "requires": {
- "abbrev": "1"
- }
- },
- "rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "requires": {
- "glob": "^7.1.3"
- }
- },
- "semver": {
- "version": "7.3.5",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
- "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
- "requires": {
- "lru-cache": "^6.0.0"
- }
- },
- "tar": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz",
- "integrity": "sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==",
- "requires": {
- "chownr": "^2.0.0",
- "fs-minipass": "^2.0.0",
- "minipass": "^3.0.0",
- "minizlib": "^2.1.1",
- "mkdirp": "^1.0.3",
- "yallist": "^4.0.0"
- }
- },
- "yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
- }
+ "ajv": "^6.12.4",
+ "debug": "^4.1.1",
+ "espree": "^7.3.0",
+ "globals": "^13.9.0",
+ "ignore": "^4.0.6",
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^3.13.1",
+ "minimatch": "^3.0.4",
+ "strip-json-comments": "^3.1.1"
}
},
+ "@humanwhocodes/config-array": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz",
+ "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==",
+ "dev": true,
+ "requires": {
+ "@humanwhocodes/object-schema": "^1.2.0",
+ "debug": "^4.1.1",
+ "minimatch": "^3.0.4"
+ }
+ },
+ "@humanwhocodes/object-schema": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz",
+ "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==",
+ "dev": true
+ },
"@kensingtontech/recacheman": {
"version": "2.2.8",
"resolved": "https://registry.npmjs.org/@kensingtontech/recacheman/-/recacheman-2.2.8.tgz",
@@ -209,85 +4658,6 @@
"rimraf": "^3.0.2",
"semver": "^7.3.4",
"tar": "^6.1.0"
- },
- "dependencies": {
- "chownr": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
- "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ=="
- },
- "fs-minipass": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
- "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
- "requires": {
- "minipass": "^3.0.0"
- }
- },
- "minipass": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz",
- "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==",
- "requires": {
- "yallist": "^4.0.0"
- }
- },
- "minizlib": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
- "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
- "requires": {
- "minipass": "^3.0.0",
- "yallist": "^4.0.0"
- }
- },
- "mkdirp": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
- "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="
- },
- "nopt": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
- "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==",
- "requires": {
- "abbrev": "1"
- }
- },
- "rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "requires": {
- "glob": "^7.1.3"
- }
- },
- "semver": {
- "version": "7.3.5",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
- "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
- "requires": {
- "lru-cache": "^6.0.0"
- }
- },
- "tar": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz",
- "integrity": "sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==",
- "requires": {
- "chownr": "^2.0.0",
- "fs-minipass": "^2.0.0",
- "minipass": "^3.0.0",
- "minizlib": "^2.1.1",
- "mkdirp": "^1.0.3",
- "yallist": "^4.0.0"
- }
- },
- "yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
- }
}
},
"@reconlx/discord.js": {
@@ -301,26 +4671,26 @@
"integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw=="
},
"@types/bson": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/@types/bson/-/bson-4.0.3.tgz",
- "integrity": "sha512-mVRvYnTOZJz3ccpxhr3wgxVmSeiYinW+zlzQz3SXWaJmD1DuL05Jeq7nKw3SnbKmbleW5qrLG5vdyWe/A9sXhw==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@types/bson/-/bson-4.0.4.tgz",
+ "integrity": "sha512-awqorHvQS0DqxkHQ/FxcPX9E+H7Du51Qw/2F+5TBMSaE3G0hm+8D3eXJ6MAzFw75nE8V7xF0QvzUSdxIjJb/GA==",
"requires": {
"@types/node": "*"
}
},
"@types/mongodb": {
- "version": "3.6.16",
- "resolved": "https://registry.npmjs.org/@types/mongodb/-/mongodb-3.6.16.tgz",
- "integrity": "sha512-D3tM0iRUet3TiIMAdvovxAIRG9gYqFd4j7visGwmPNdQj8Fq/uFFfRxyGCgEwVXAs0NnJPMI/QGVTADxDwhmSQ==",
+ "version": "3.6.20",
+ "resolved": "https://registry.npmjs.org/@types/mongodb/-/mongodb-3.6.20.tgz",
+ "integrity": "sha512-WcdpPJCakFzcWWD9juKoZbRtQxKIMYF/JIAM4JrNHrMcnJL6/a2NWjXxW7fo9hxboxxkg+icff8d7+WIEvKgYQ==",
"requires": {
"@types/bson": "*",
"@types/node": "*"
}
},
"@types/node": {
- "version": "15.6.1",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-15.6.1.tgz",
- "integrity": "sha512-7EIraBEyRHEe7CH+Fm1XvgqU6uwZN8Q7jppJGcqjROMT29qhAuuOxYB1uEY5UMYQKEmA5D+5tBnhdaPXSsLONA=="
+ "version": "15.14.2",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.2.tgz",
+ "integrity": "sha512-dvMUE/m2LbXPwlvVuzCyslTEtQ2ZwuuFClDrOQ6mp2CenCg971719PTILZ4I6bTP27xfFFc+o7x2TkLuun/MPw=="
},
"abab": {
"version": "2.0.5",
@@ -350,9 +4720,9 @@
}
},
"acorn": {
- "version": "8.2.2",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.2.tgz",
- "integrity": "sha512-VrMS8kxT0e7J1EX0p6rI/E0FbfOVcvBpbIqHThFv+f8YrZIlMfVotYcXKVPmTvPW8sW5miJzfUFrrvthUZg8VQ=="
+ "version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
+ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A=="
},
"acorn-globals": {
"version": "6.0.0",
@@ -361,52 +4731,33 @@
"requires": {
"acorn": "^7.1.1",
"acorn-walk": "^7.1.1"
- },
- "dependencies": {
- "acorn": {
- "version": "7.4.1",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
- "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A=="
- }
}
},
+ "acorn-jsx": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "dev": true,
+ "requires": {}
+ },
"acorn-walk": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz",
"integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA=="
},
- "aesthetically": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/aesthetically/-/aesthetically-0.0.5.tgz",
- "integrity": "sha512-jrMnbCfNbqq/z34J+FZI6sYu/cnYv1QrpWVZUDshdfAGPojZ8OWt8gC+yYR6PJZK46fzL9HOWF9mP6Am9Dr7zQ=="
- },
"agent-base": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
"integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
"requires": {
"debug": "4"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
- "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- }
}
},
"ajv": {
"version": "6.12.6",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
"requires": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -414,15 +4765,23 @@
"uri-js": "^4.2.2"
}
},
+ "ansi-colors": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
+ "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
+ "dev": true
+ },
"ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
},
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
"requires": {
"color-convert": "^2.0.1"
}
@@ -439,6 +4798,44 @@
"requires": {
"delegates": "^1.0.0",
"readable-stream": "^2.0.6"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ },
+ "readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
+ }
+ },
+ "argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dev": true,
+ "requires": {
+ "sprintf-js": "~1.0.2"
}
},
"array-flatten": {
@@ -446,137 +4843,17 @@
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
"integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
},
- "asap": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
- "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
- },
- "asn1": {
- "version": "0.2.4",
- "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
- "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
- "requires": {
- "safer-buffer": "~2.1.0"
- }
- },
- "asn1.js": {
- "version": "5.4.1",
- "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz",
- "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==",
- "requires": {
- "bn.js": "^4.0.0",
- "inherits": "^2.0.1",
- "minimalistic-assert": "^1.0.0",
- "safer-buffer": "^2.1.0"
- }
- },
- "assert-never": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz",
- "integrity": "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw=="
- },
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
- },
- "async": {
- "version": "0.9.2",
- "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
- "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0="
- },
- "async.parallellimit": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/async.parallellimit/-/async.parallellimit-0.5.2.tgz",
- "integrity": "sha1-v9y/Lwgy8f/0wLM1S09jIGY91R8=",
- "requires": {
- "async.util.eachoflimit": "0.5.2",
- "async.util.parallel": "0.5.2"
- }
- },
- "async.util.eachoflimit": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/async.util.eachoflimit/-/async.util.eachoflimit-0.5.2.tgz",
- "integrity": "sha1-i4y4z7AniqXOtQqPgAwcJmjbV+8=",
- "requires": {
- "async.util.keyiterator": "0.5.2",
- "async.util.noop": "0.5.2",
- "async.util.once": "0.5.2",
- "async.util.onlyonce": "0.5.2"
- }
- },
- "async.util.isarray": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/async.util.isarray/-/async.util.isarray-0.5.2.tgz",
- "integrity": "sha1-5i2sjyY29lh13PdSHC0k0N+yu98="
- },
- "async.util.isarraylike": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/async.util.isarraylike/-/async.util.isarraylike-0.5.2.tgz",
- "integrity": "sha1-jn+H2pFB8vCZboBAR30NTv4/UPg=",
- "requires": {
- "async.util.isarray": "0.5.2"
- }
- },
- "async.util.keyiterator": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/async.util.keyiterator/-/async.util.keyiterator-0.5.2.tgz",
- "integrity": "sha1-M55s6PidAAQz+3gU4ico8/F1CQ0=",
- "requires": {
- "async.util.isarraylike": "0.5.2",
- "async.util.keys": "0.5.2"
- }
- },
- "async.util.keys": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/async.util.keys/-/async.util.keys-0.5.2.tgz",
- "integrity": "sha1-XDTd2KPtt6eIPJtf4hJngbIJivY="
- },
- "async.util.noop": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/async.util.noop/-/async.util.noop-0.5.2.tgz",
- "integrity": "sha1-vdYrl8sKo/YLWGrRSEaGmJdeWLk="
- },
- "async.util.once": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/async.util.once/-/async.util.once-0.5.2.tgz",
- "integrity": "sha1-FFPLdATK0IImlPq6vEepblyqchY="
- },
- "async.util.onlyonce": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/async.util.onlyonce/-/async.util.onlyonce-0.5.2.tgz",
- "integrity": "sha1-uOb8AErckjFk154y8oE+5GXCT/I="
- },
- "async.util.parallel": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/async.util.parallel/-/async.util.parallel-0.5.2.tgz",
- "integrity": "sha1-IzUk49b6/9XplddUdrjZJPloCM0=",
- "requires": {
- "async.util.isarraylike": "0.5.2",
- "async.util.noop": "0.5.2",
- "async.util.restparam": "0.5.2"
- }
- },
- "async.util.restparam": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/async.util.restparam/-/async.util.restparam-0.5.2.tgz",
- "integrity": "sha1-A+/r88Ane5ciDlJaunUPXgT8gM0="
+ "astral-regex": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
+ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
+ "dev": true
},
"asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
},
- "aws-sign2": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
- "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
- },
- "aws4": {
- "version": "1.11.0",
- "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
- "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="
- },
"axios": {
"version": "0.21.1",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz",
@@ -585,107 +4862,24 @@
"follow-redirects": "^1.10.0"
}
},
- "babel-walk": {
- "version": "3.0.0-canary-5",
- "resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz",
- "integrity": "sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==",
- "requires": {
- "@babel/types": "^7.9.6"
- }
- },
"balanced-match": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
- "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
},
"base64-js": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
},
- "base64url": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz",
- "integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A=="
- },
- "bcrypt-pbkdf": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
- "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
- "requires": {
- "tweetnacl": "^0.14.3"
- },
- "dependencies": {
- "tweetnacl": {
- "version": "0.14.5",
- "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
- "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
- }
- }
- },
"better-sqlite3": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-7.1.2.tgz",
- "integrity": "sha512-8FWYnJ6Bx94MBX03J5Ka7sTRlvXXMEm4FW2Op7nM8ErQZeyALYLmSlbMBnfr4cMpS0tj0aYZv0a+26G2YJuIjg==",
+ "version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-7.4.1.tgz",
+ "integrity": "sha512-sk1kW3PsWE7W7G9qbi5TQxCROlQVR8YWlp4srbyrwN5DrLeamKfrm3JExwOiNSAYyJv8cw5/2HOfvF/ipZj4qg==",
"requires": {
"bindings": "^1.5.0",
- "prebuild-install": "^5.3.3",
- "tar": "^6.0.5"
- },
- "dependencies": {
- "chownr": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
- "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ=="
- },
- "fs-minipass": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
- "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
- "requires": {
- "minipass": "^3.0.0"
- }
- },
- "minipass": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz",
- "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==",
- "requires": {
- "yallist": "^4.0.0"
- }
- },
- "minizlib": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
- "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
- "requires": {
- "minipass": "^3.0.0",
- "yallist": "^4.0.0"
- }
- },
- "mkdirp": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
- "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="
- },
- "tar": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz",
- "integrity": "sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==",
- "requires": {
- "chownr": "^2.0.0",
- "fs-minipass": "^2.0.0",
- "minipass": "^3.0.0",
- "minizlib": "^2.1.1",
- "mkdirp": "^1.0.3",
- "yallist": "^4.0.0"
- }
- },
- "yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
- }
+ "prebuild-install": "^6.0.1",
+ "tar": "^6.1.0"
}
},
"bindings": {
@@ -703,6 +4897,35 @@
"requires": {
"readable-stream": "^2.3.5",
"safe-buffer": "^5.1.1"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ },
+ "readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
}
},
"bluebird": {
@@ -710,11 +4933,6 @@
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
"integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA=="
},
- "bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
- },
"body-parser": {
"version": "1.19.0",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
@@ -744,24 +4962,9 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
- },
- "qs": {
- "version": "6.7.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
- "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
}
}
},
- "boolbase": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
- "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24="
- },
- "boolstring": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/boolstring/-/boolstring-1.0.2.tgz",
- "integrity": "sha512-0JLNSmZUv1m/O8sVayFm2t0naiOXwQ9O2Gq9u1eoIkhvu6U5NQER/e3k4BGpjZ33G775lWMT7TzJ7r5VtmEnbQ=="
- },
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -790,29 +4993,16 @@
"ieee754": "^1.1.13"
}
},
- "buffer-equal-constant-time": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
- "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk="
- },
- "buffer-from": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
- "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
- },
"bytes": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
"integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
},
- "call-bind": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
- "requires": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
- }
+ "callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "dev": true
},
"canvacord": {
"version": "5.2.1",
@@ -837,104 +5027,42 @@
"simple-get": "^3.0.3"
}
},
- "caseless": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
- "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
- },
"cath": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/cath/-/cath-1.0.7.tgz",
"integrity": "sha512-P6kdi3KiE80eMK957AvQacDPD6z8ZupcoiGD6GpeLbOvSOzQSXIaUtiNutIlnDfqQ9D90PV4Imu2KwplIjLOAA==",
"requires": {
"discord.js": "^12.5.1"
- },
- "dependencies": {
- "discord.js": {
- "version": "12.5.3",
- "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-12.5.3.tgz",
- "integrity": "sha512-D3nkOa/pCkNyn6jLZnAiJApw2N9XrIsXUAdThf01i7yrEuqUmDGc7/CexVWwEcgbQR97XQ+mcnqJpmJ/92B4Aw==",
- "requires": {
- "@discordjs/collection": "^0.1.6",
- "@discordjs/form-data": "^3.0.1",
- "abort-controller": "^3.0.0",
- "node-fetch": "^2.6.1",
- "prism-media": "^1.2.9",
- "setimmediate": "^1.0.5",
- "tweetnacl": "^1.0.3",
- "ws": "^7.4.4"
- }
- }
}
},
- "centra": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/centra/-/centra-2.4.2.tgz",
- "integrity": "sha512-f1RaP0V1HqVNEXfLfjNBthB2yy3KnSGnPCnOPCFLUk9e/Z4rNJ8nBaJNnghflnp88mi1IT8mfmW+HlMS1/H+bg=="
- },
"chalk": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz",
"integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==",
+ "dev": true,
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
},
- "character-parser": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz",
- "integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=",
- "requires": {
- "is-regex": "^1.0.3"
- }
- },
"charenc": {
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz",
"integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc="
},
- "cheerio": {
- "version": "1.0.0-rc.6",
- "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.6.tgz",
- "integrity": "sha512-hjx1XE1M/D5pAtMgvWwE21QClmAEeGHOIDfycgmndisdNgI6PE1cGRQkMGBcsbUbmEQyWu5PJLUcAOjtQS8DWw==",
- "requires": {
- "cheerio-select": "^1.3.0",
- "dom-serializer": "^1.3.1",
- "domhandler": "^4.1.0",
- "htmlparser2": "^6.1.0",
- "parse5": "^6.0.1",
- "parse5-htmlparser2-tree-adapter": "^6.0.1"
- }
- },
- "cheerio-select": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-1.4.0.tgz",
- "integrity": "sha512-sobR3Yqz27L553Qa7cK6rtJlMDbiKPdNywtR95Sj/YgfpLfy0u6CGJuaBKe5YE/vTc23SCRKxWSdlon/w6I/Ew==",
- "requires": {
- "css-select": "^4.1.2",
- "css-what": "^5.0.0",
- "domelementtype": "^2.2.0",
- "domhandler": "^4.2.0",
- "domutils": "^2.6.0"
- }
- },
"chownr": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
- "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
+ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ=="
},
- "cli-color": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/cli-color/-/cli-color-1.2.0.tgz",
- "integrity": "sha1-OlrnT9drYmevZm5p4q+70B3vNNE=",
+ "cli": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz",
+ "integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=",
+ "dev": true,
"requires": {
- "ansi-regex": "^2.1.1",
- "d": "1",
- "es5-ext": "^0.10.12",
- "es6-iterator": "2",
- "memoizee": "^0.4.3",
- "timers-ext": "0.1"
+ "exit": "0.1.2",
+ "glob": "^7.1.1"
}
},
"code-point-at": {
@@ -946,6 +5074,7 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
"requires": {
"color-name": "~1.1.4"
}
@@ -953,7 +5082,8 @@
"color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
},
"combined-stream": {
"version": "1.0.8",
@@ -968,58 +5098,23 @@
"resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz",
"integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw=="
},
+ "complex.js": {
+ "version": "2.0.15",
+ "resolved": "https://registry.npmjs.org/complex.js/-/complex.js-2.0.15.tgz",
+ "integrity": "sha512-gDBvQU8IG139ZBQTSo2qvDFP+lANMGluM779csXOr6ny1NUtA3wkUnCFjlDNH/moAVfXtvClYt6G0zarFbtz5w=="
+ },
"concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
},
- "concat-stream": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
- "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+ "console-browserify": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
+ "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=",
+ "dev": true,
"requires": {
- "buffer-from": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^2.2.2",
- "typedarray": "^0.0.6"
- }
- },
- "connect-mongo": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/connect-mongo/-/connect-mongo-4.4.1.tgz",
- "integrity": "sha512-I1QUE2tSGPtIBDAL2sFqUEPspDeJOR0u4g+N41ARJZk958pncu2PBG48Ev++fnldljobpIfdafak7hSlPYarvA==",
- "requires": {
- "debug": "^4.3.1",
- "kruptein": "^3.0.0",
- "mongodb": "3.6.5"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
- "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
- "requires": {
- "ms": "2.1.2"
- }
- },
- "mongodb": {
- "version": "3.6.5",
- "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.6.5.tgz",
- "integrity": "sha512-mQlYKw1iGbvJJejcPuyTaytq0xxlYbIoVDm2FODR+OHxyEiMR021vc32bTvamgBjCswsD54XIRwhg3yBaWqJjg==",
- "requires": {
- "bl": "^2.2.1",
- "bson": "^1.1.4",
- "denque": "^1.4.1",
- "require_optional": "^1.0.1",
- "safe-buffer": "^5.1.2",
- "saslprep": "^1.0.0"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- }
+ "date-now": "^0.1.4"
}
},
"console-control-strings": {
@@ -1027,15 +5122,6 @@
"resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
"integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
},
- "constantinople": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz",
- "integrity": "sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==",
- "requires": {
- "@babel/parser": "^7.6.0",
- "@babel/types": "^7.6.1"
- }
- },
"content-disposition": {
"version": "0.5.3",
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
@@ -1064,12 +5150,24 @@
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
},
- "cross-fetch": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz",
- "integrity": "sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==",
+ "cors": {
+ "version": "2.8.5",
+ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
+ "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
"requires": {
- "node-fetch": "2.6.1"
+ "object-assign": "^4",
+ "vary": "^1"
+ }
+ },
+ "cross-spawn": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "dev": true,
+ "requires": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
}
},
"crypt": {
@@ -1077,23 +5175,6 @@
"resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz",
"integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs="
},
- "css-select": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.1.2.tgz",
- "integrity": "sha512-nu5ye2Hg/4ISq4XqdLY2bEatAcLIdt3OYGFc9Tm9n7VSlFBcfRv0gBNksHRgSdUDQGtN3XrZ94ztW+NfzkFSUw==",
- "requires": {
- "boolbase": "^1.0.0",
- "css-what": "^5.0.0",
- "domhandler": "^4.2.0",
- "domutils": "^2.6.0",
- "nth-check": "^2.0.0"
- }
- },
- "css-what": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz",
- "integrity": "sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg=="
- },
"cssom": {
"version": "0.4.4",
"resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz",
@@ -1114,28 +5195,6 @@
}
}
},
- "d": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
- "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
- "requires": {
- "es5-ext": "^0.10.50",
- "type": "^1.0.1"
- }
- },
- "dashdash": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
- "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
- "requires": {
- "assert-plus": "^1.0.0"
- }
- },
- "dasu": {
- "version": "0.4.2",
- "resolved": "https://registry.npmjs.org/dasu/-/dasu-0.4.2.tgz",
- "integrity": "sha512-3iZKDAKqv0APFwpqP40gpro5msM+pwhQN7IhB42mjbL1W4M2V6A+MJy7RhA8y6lUM+1mQoLls3OePidmzVbncQ=="
- },
"data-urls": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz",
@@ -1146,10 +5205,31 @@
"whatwg-url": "^8.0.0"
}
},
+ "date-now": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
+ "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=",
+ "dev": true
+ },
+ "debug": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
+ "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
+ "requires": {
+ "ms": "2.1.2"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ }
+ }
+ },
"decimal.js": {
- "version": "10.2.1",
- "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.1.tgz",
- "integrity": "sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw=="
+ "version": "10.3.1",
+ "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz",
+ "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ=="
},
"decompress-response": {
"version": "4.2.1",
@@ -1204,40 +5284,10 @@
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
"integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups="
},
- "disco-oauth": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/disco-oauth/-/disco-oauth-5.1.0.tgz",
- "integrity": "sha512-36yAW1h6h3k3QTMAmY21/vJiu1xgkfqk//F9VyMBlR3g6ELYa3fgRWmSGfjycC+hi+/zOH6Ti/lx4r+U7EgAcw==",
- "requires": {
- "jsonwebtoken": "^8.5.1",
- "phin": "^3.5.0",
- "uid": "^1.0.0"
- }
- },
"discord-buttons": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/discord-buttons/-/discord-buttons-1.0.4.tgz",
- "integrity": "sha512-oLYUDaL4IQmEAnnIkWDPZHsxQA4+DpGJy9jszsx9vOmODnWsPdFJKtMvG39TfeZ/eTwpcNT2WWtPX8m/xAfyRA==",
- "requires": {
- "discord.js": "^12.5.3"
- },
- "dependencies": {
- "discord.js": {
- "version": "12.5.3",
- "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-12.5.3.tgz",
- "integrity": "sha512-D3nkOa/pCkNyn6jLZnAiJApw2N9XrIsXUAdThf01i7yrEuqUmDGc7/CexVWwEcgbQR97XQ+mcnqJpmJ/92B4Aw==",
- "requires": {
- "@discordjs/collection": "^0.1.6",
- "@discordjs/form-data": "^3.0.1",
- "abort-controller": "^3.0.0",
- "node-fetch": "^2.6.1",
- "prism-media": "^1.2.9",
- "setimmediate": "^1.0.5",
- "tweetnacl": "^1.0.3",
- "ws": "^7.4.4"
- }
- }
- }
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/discord-buttons/-/discord-buttons-3.2.1.tgz",
+ "integrity": "sha512-UN5xOLG0TwTX6Qr/hjdSyP63HxOYxs5saxfdJ/vijSqjfa/yVPgxO2InKF0l8rpsDOVMsLWGDFLI3+Ax97/LOg=="
},
"discord-canvas": {
"version": "1.4.1",
@@ -1259,82 +5309,63 @@
"serialize-javascript": "^5.0.1"
}
},
- "discord-player": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/discord-player/-/discord-player-3.4.0.tgz",
- "integrity": "sha512-r7RCxIBq2n79+rdz6NtquR3DmJ2+8TMnPcCYhqCVfM5eqMiYlGcN/eEiSF4VGD2wJ8QGjQNsvV29J2GWG77D1Q==",
- "requires": {
- "chalk": "^4.1.0",
- "discord-ytdl-core": "^5.0.1",
- "jsdom": "^16.4.0",
- "merge-options": "^3.0.4",
- "node-fetch": "^2.6.0",
- "parse-ms": "^2.1.0",
- "reverbnation-scraper": "^2.0.0",
- "soundcloud-scraper": "^4.0.3",
- "spotify-url-info": "^2.2.0",
- "youtube-sr": "^4.0.2",
- "ytdl-core": "^4.5.0"
- }
- },
- "discord-rpc": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/discord-rpc/-/discord-rpc-3.2.0.tgz",
- "integrity": "sha512-KJv0EVbGMlr04HoG6f5b3wD7X9kSHzQ2Ed2qfHSDvYJ1MkE8RbCQmMcQQrSvAxpfsqZgUjB/bsfi/mjyicCH+A==",
- "requires": {
- "node-fetch": "^2.6.1",
- "ws": "^7.3.1"
- }
- },
"discord-xp": {
- "version": "1.1.14",
- "resolved": "https://registry.npmjs.org/discord-xp/-/discord-xp-1.1.14.tgz",
- "integrity": "sha512-SYZTi/xVn0sJJn7wW49OekdTIdi3d4/ftII4Yl1wteOfa49/0uEpCRqf6I5KZffuz1kCCD5p8EVAIg291rzyvg==",
+ "version": "1.1.16",
+ "resolved": "https://registry.npmjs.org/discord-xp/-/discord-xp-1.1.16.tgz",
+ "integrity": "sha512-A5g6utg+0fCLEUl6sS5J5mpr8DAXe5KxBFQnJf89KpQ71Itt0Hdv5/seOBCc6p239nuxEfW9n29peMlLCuvlrg==",
"requires": {
"mongoose": "^5.11.11"
}
},
- "discord-ytdl-core": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/discord-ytdl-core/-/discord-ytdl-core-5.0.3.tgz",
- "integrity": "sha512-q4GOEFiV19l0OcPezXnkDWualf+n96LcbTEWReceiDHdx4xxn5CXZX9PR4iDTXQR3Kv2VUkwB8RO8dI50d88vQ==",
- "requires": {
- "prism-media": "^1.2.9"
- }
- },
"discord.js": {
- "version": "github:reconlx/discord.js#17c7eb62f3748518900f69b23be87aeb13683007",
- "from": "github:reconlx/discord.js",
+ "version": "12.5.3",
+ "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-12.5.3.tgz",
+ "integrity": "sha512-D3nkOa/pCkNyn6jLZnAiJApw2N9XrIsXUAdThf01i7yrEuqUmDGc7/CexVWwEcgbQR97XQ+mcnqJpmJ/92B4Aw==",
"requires": {
"@discordjs/collection": "^0.1.6",
"@discordjs/form-data": "^3.0.1",
"abort-controller": "^3.0.0",
"node-fetch": "^2.6.1",
- "prism-media": "^1.2.2",
+ "prism-media": "^1.2.9",
"setimmediate": "^1.0.5",
"tweetnacl": "^1.0.3",
- "ws": "^7.3.1"
+ "ws": "^7.4.4"
}
},
- "doctypes": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz",
- "integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk="
+ "doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2"
+ }
},
"dom-serializer": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.1.tgz",
- "integrity": "sha512-Pv2ZluG5ife96udGgEDovOOOA5UELkltfJpnIExPrAk1LTvecolUGn6lIaoLh86d83GiB86CjzciMd9BuRB71Q==",
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz",
+ "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==",
"requires": {
"domelementtype": "^2.0.1",
- "domhandler": "^4.0.0",
"entities": "^2.0.0"
+ },
+ "dependencies": {
+ "domelementtype": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz",
+ "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A=="
+ },
+ "entities": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
+ "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A=="
+ }
}
},
"domelementtype": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz",
- "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A=="
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
+ "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w=="
},
"domexception": {
"version": "2.0.1",
@@ -1352,62 +5383,42 @@
}
},
"domhandler": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.0.tgz",
- "integrity": "sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA==",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz",
+ "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=",
"requires": {
- "domelementtype": "^2.2.0"
+ "domelementtype": "1"
}
},
"domutils": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.6.0.tgz",
- "integrity": "sha512-y0BezHuy4MDYxh6OvolXYsH+1EMGmFbwv5FKW7ovwMG6zTPWqNPq3WF9ayZssFq+UlKdffGLbOEaghNdaOm1WA==",
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
+ "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
"requires": {
- "dom-serializer": "^1.0.1",
- "domelementtype": "^2.2.0",
- "domhandler": "^4.2.0"
+ "dom-serializer": "0",
+ "domelementtype": "1"
}
},
"dotenv": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz",
- "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw=="
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz",
+ "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q=="
},
"each": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/each/-/each-1.2.1.tgz",
"integrity": "sha512-POUbnWaseHgI8I+icHo3jAMrCqoLgVWaI7yqcQ0nat4q2f2BFUVGAndMOvr2UZoHAGAnQqotaM9RI4kZcjtAcg=="
},
- "ecc-jsbn": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
- "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
- "requires": {
- "jsbn": "~0.1.0",
- "safer-buffer": "^2.1.0"
- }
- },
- "ecdsa-sig-formatter": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
- "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
- "requires": {
- "safe-buffer": "^5.0.1"
- }
- },
"ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
},
- "ejs": {
- "version": "3.1.6",
- "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz",
- "integrity": "sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==",
- "requires": {
- "jake": "^10.6.1"
- }
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
},
"encodeurl": {
"version": "1.0.2",
@@ -1423,9 +5434,9 @@
},
"dependencies": {
"iconv-lite": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz",
- "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==",
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
+ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
"requires": {
"safer-buffer": ">= 2.1.2 < 3.0.0"
}
@@ -1440,54 +5451,48 @@
"once": "^1.4.0"
}
},
+ "enquirer": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz",
+ "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==",
+ "dev": true,
+ "requires": {
+ "ansi-colors": "^4.1.1"
+ }
+ },
"entities": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
- "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A=="
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz",
+ "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=",
+ "dev": true
},
- "env-paths": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
- "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A=="
- },
- "es5-ext": {
- "version": "0.10.53",
- "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz",
- "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==",
+ "erela.js": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/erela.js/-/erela.js-2.3.3.tgz",
+ "integrity": "sha512-tzowGHLSodZr2j311csFSqm9lwE6plqeULTAwPwuRX9PQbXg4Ohdy/3MTMWrltiFAMSIG/5r9GQtTUt9Mqzhhw==",
"requires": {
- "es6-iterator": "~2.0.3",
- "es6-symbol": "~3.1.3",
- "next-tick": "~1.0.0"
+ "@discordjs/collection": "^0.1.6",
+ "petitio": "^1.1.0",
+ "ws": "^7.3.1"
}
},
- "es6-iterator": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
- "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
+ "erela.js-spotify": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/erela.js-spotify/-/erela.js-spotify-1.2.0.tgz",
+ "integrity": "sha512-FbkdVK7OquVzyNVl4aZ3AU6RHRrHzBpORGorK5q+L26y3hB/7ze9mQ7uiOa5PsskskELRWepoluqke3U8edbmQ==",
"requires": {
- "d": "1",
- "es5-ext": "^0.10.35",
- "es6-symbol": "^3.1.1"
- }
- },
- "es6-symbol": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz",
- "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==",
- "requires": {
- "d": "^1.0.1",
- "ext": "^1.1.2"
- }
- },
- "es6-weak-map": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz",
- "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==",
- "requires": {
- "d": "1",
- "es5-ext": "^0.10.46",
- "es6-iterator": "^2.0.3",
- "es6-symbol": "^3.1.1"
+ "axios": "^0.20.0",
+ "erela.js": "^2.2.0"
+ },
+ "dependencies": {
+ "axios": {
+ "version": "0.20.0",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.20.0.tgz",
+ "integrity": "sha512-ANA4rr2BDcmmAQLOKft2fufrtuvlqR+cXNNinUmvfeSNCOF98PZL+7M/v1zIdGo7OLjEA9J2gXJL+j4zGsl0bA==",
+ "requires": {
+ "follow-redirects": "^1.10.0"
+ }
+ }
}
},
"escape-html": {
@@ -1495,10 +5500,16 @@
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
"integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
},
+ "escape-latex": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/escape-latex/-/escape-latex-1.2.0.tgz",
+ "integrity": "sha512-nV5aVWW1K0wEiUIEdZ4erkGGH8mDxGyxSeqPzRNtWP7ataw+/olFObw7hujFWlVjNsaDFw5VZ5NzVSIqRgfTiw=="
+ },
"escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "dev": true
},
"escodegen": {
"version": "2.0.0",
@@ -1510,6 +5521,155 @@
"esutils": "^2.0.2",
"optionator": "^0.8.1",
"source-map": "~0.6.1"
+ },
+ "dependencies": {
+ "estraverse": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
+ "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ=="
+ },
+ "levn": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
+ "requires": {
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2"
+ }
+ },
+ "optionator": {
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
+ "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
+ "requires": {
+ "deep-is": "~0.1.3",
+ "fast-levenshtein": "~2.0.6",
+ "levn": "~0.3.0",
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2",
+ "word-wrap": "~1.2.3"
+ }
+ },
+ "prelude-ls": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ="
+ },
+ "type-check": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
+ "requires": {
+ "prelude-ls": "~1.1.2"
+ }
+ }
+ }
+ },
+ "eslint": {
+ "version": "7.30.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.30.0.tgz",
+ "integrity": "sha512-VLqz80i3as3NdloY44BQSJpFw534L9Oh+6zJOUaViV4JPd+DaHwutqP7tcpkW3YiXbK6s05RZl7yl7cQn+lijg==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "7.12.11",
+ "@eslint/eslintrc": "^0.4.2",
+ "@humanwhocodes/config-array": "^0.5.0",
+ "ajv": "^6.10.0",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.2",
+ "debug": "^4.0.1",
+ "doctrine": "^3.0.0",
+ "enquirer": "^2.3.5",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^5.1.1",
+ "eslint-utils": "^2.1.0",
+ "eslint-visitor-keys": "^2.0.0",
+ "espree": "^7.3.1",
+ "esquery": "^1.4.0",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^6.0.1",
+ "functional-red-black-tree": "^1.0.1",
+ "glob-parent": "^5.1.2",
+ "globals": "^13.6.0",
+ "ignore": "^4.0.6",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "js-yaml": "^3.13.1",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.0.4",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.1",
+ "progress": "^2.0.0",
+ "regexpp": "^3.1.0",
+ "semver": "^7.2.1",
+ "strip-ansi": "^6.0.0",
+ "strip-json-comments": "^3.1.0",
+ "table": "^6.0.9",
+ "text-table": "^0.2.0",
+ "v8-compile-cache": "^2.0.3"
+ }
+ },
+ "eslint-config-google": {
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-google/-/eslint-config-google-0.14.0.tgz",
+ "integrity": "sha512-WsbX4WbjuMvTdeVL6+J3rK1RGhCTqjsFjX7UMSMgZiyxxaNLkoJENbrGExzERFeoTpGw3F3FypTiWAP9ZXzkEw==",
+ "dev": true,
+ "requires": {}
+ },
+ "eslint-scope": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "dev": true,
+ "requires": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ }
+ },
+ "eslint-utils": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
+ "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
+ "dev": true,
+ "requires": {
+ "eslint-visitor-keys": "^1.1.0"
+ },
+ "dependencies": {
+ "eslint-visitor-keys": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
+ "dev": true
+ }
+ }
+ },
+ "eslint-visitor-keys": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
+ "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
+ "dev": true
+ },
+ "espree": {
+ "version": "7.3.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz",
+ "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==",
+ "dev": true,
+ "requires": {
+ "acorn": "^7.4.0",
+ "acorn-jsx": "^5.3.1",
+ "eslint-visitor-keys": "^1.3.0"
+ },
+ "dependencies": {
+ "eslint-visitor-keys": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
+ "dev": true
+ }
}
},
"esprima": {
@@ -1517,10 +5677,45 @@
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
"integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
},
+ "esquery": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
+ "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
+ "dev": true,
+ "requires": {
+ "estraverse": "^5.1.0"
+ },
+ "dependencies": {
+ "estraverse": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
+ "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
+ "dev": true
+ }
+ }
+ },
+ "esrecurse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+ "dev": true,
+ "requires": {
+ "estraverse": "^5.2.0"
+ },
+ "dependencies": {
+ "estraverse": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
+ "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
+ "dev": true
+ }
+ }
+ },
"estraverse": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
- "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ=="
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "dev": true
},
"esutils": {
"version": "2.0.3",
@@ -1532,20 +5727,17 @@
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
"integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
},
- "event-emitter": {
- "version": "0.3.5",
- "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
- "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
- "requires": {
- "d": "1",
- "es5-ext": "~0.10.14"
- }
- },
"event-target-shim": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
"integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ=="
},
+ "exit": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
+ "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
+ "dev": true
+ },
"expand-template": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
@@ -1600,11 +5792,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
- },
- "qs": {
- "version": "6.7.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
- "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
}
}
},
@@ -1653,63 +5840,35 @@
}
}
},
- "ext": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz",
- "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==",
- "requires": {
- "type": "^2.0.0"
- },
- "dependencies": {
- "type": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz",
- "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw=="
- }
- }
- },
- "extend": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
- "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
- },
- "extsprintf": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
- "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
- },
"fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+ "dev": true
},
"fast-json-stable-stringify": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+ "dev": true
},
"fast-levenshtein": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
"integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
},
- "ffmpeg": {
- "version": "0.0.4",
- "resolved": "https://registry.npmjs.org/ffmpeg/-/ffmpeg-0.0.4.tgz",
- "integrity": "sha1-HEYN+OfaUSf2LO70v6BsWciWMMs=",
- "requires": {
- "when": ">= 0.0.1"
- }
+ "figlet": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.5.0.tgz",
+ "integrity": "sha512-ZQJM4aifMpz6H19AW1VqvZ7l4pOE9p7i/3LyxgO2kp+PO/VcDYNqIHEMtkccqIhTXMKci4kjueJr/iCQEaT/Ww=="
},
- "ffmpeg-static": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ffmpeg-static/-/ffmpeg-static-4.3.0.tgz",
- "integrity": "sha512-w/tXYGlOSeAkPHjypjzylaChLrG5wRzHFyB47KFRDsGyBxUJJWiq9I/39/e6r9Y4aY1gzpejTLg5Aa0aqb0XXA==",
+ "file-entry-cache": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
+ "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
+ "dev": true,
"requires": {
- "@derhuerst/http-basic": "^8.2.0",
- "env-paths": "^2.2.0",
- "https-proxy-agent": "^5.0.0",
- "progress": "^2.0.3"
+ "flat-cache": "^3.0.4"
}
},
"file-uri-to-path": {
@@ -1717,14 +5876,6 @@
"resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
"integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="
},
- "filelist": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz",
- "integrity": "sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==",
- "requires": {
- "minimatch": "^3.0.4"
- }
- },
"finalhandler": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
@@ -1754,15 +5905,26 @@
}
}
},
- "follow-redirects": {
- "version": "1.13.3",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.3.tgz",
- "integrity": "sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA=="
+ "flat-cache": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
+ "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+ "dev": true,
+ "requires": {
+ "flatted": "^3.1.0",
+ "rimraf": "^3.0.2"
+ }
},
- "forever-agent": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
- "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
+ "flatted": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.1.tgz",
+ "integrity": "sha512-OMQjaErSFHmHqZe+PSidH5n8j3O0F2DdnVh8JB4j4eUQ2k6KvB0qGfrKIhapvez5JerBbmWkaLYUYWISaESoXg==",
+ "dev": true
+ },
+ "follow-redirects": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz",
+ "integrity": "sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg=="
},
"form-data": {
"version": "3.0.1",
@@ -1791,9 +5953,14 @@
}
},
"forwarded": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
- "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="
+ },
+ "fraction.js": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.1.tgz",
+ "integrity": "sha512-MHOhvvxHTfRFpF1geTK9czMIZ6xclsEor2wkIGYYq+PxcQqT7vStJqjhe6S1TenZrMZzo+wlqOufBDVepUEgPg=="
},
"fresh": {
"version": "0.5.2",
@@ -1820,6 +5987,24 @@
"klaw": "^1.0.0",
"path-is-absolute": "^1.0.0",
"rimraf": "^2.2.8"
+ },
+ "dependencies": {
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ }
+ }
+ },
+ "fs-minipass": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
+ "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
+ "requires": {
+ "minipass": "^3.0.0"
}
},
"fs.realpath": {
@@ -1827,10 +6012,11 @@
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
},
- "function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+ "functional-red-black-tree": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
+ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
+ "dev": true
},
"gauge": {
"version": "2.7.4",
@@ -1845,24 +6031,21 @@
"string-width": "^1.0.1",
"strip-ansi": "^3.0.1",
"wide-align": "^1.1.0"
- }
- },
- "get-intrinsic": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
- "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
- "requires": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1"
- }
- },
- "getpass": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
- "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
- "requires": {
- "assert-plus": "^1.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ }
}
},
"gifencoder": {
@@ -1879,9 +6062,9 @@
"integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4="
},
"glob": {
- "version": "7.1.6",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
- "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "version": "7.1.7",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
+ "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@@ -1891,6 +6074,24 @@
"path-is-absolute": "^1.0.0"
}
},
+ "glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ },
+ "globals": {
+ "version": "13.10.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz",
+ "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==",
+ "dev": true,
+ "requires": {
+ "type-fest": "^0.20.2"
+ }
+ },
"goosecache": {
"version": "9.0.14",
"resolved": "https://registry.npmjs.org/goosecache/-/goosecache-9.0.14.tgz",
@@ -1906,37 +6107,11 @@
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
"integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ=="
},
- "har-schema": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
- "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
- },
- "har-validator": {
- "version": "5.1.5",
- "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
- "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
- "requires": {
- "ajv": "^6.12.3",
- "har-schema": "^2.0.0"
- }
- },
- "has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "requires": {
- "function-bind": "^1.1.1"
- }
- },
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "has-symbols": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
- "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw=="
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
},
"has-unicode": {
"version": "2.0.1",
@@ -1948,11 +6123,6 @@
"resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
"integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="
},
- "himalaya": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/himalaya/-/himalaya-1.1.0.tgz",
- "integrity": "sha512-LLase1dHCRMel68/HZTFft0N0wti0epHr3nNY7ynpLbyZpmrKMQ8YIpiOV77TM97cNpC8Wb2n6f66IRggwdWPw=="
- },
"html-encoding-sniffer": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz",
@@ -1972,49 +6142,6 @@
"minimist": "^1.2.0"
},
"dependencies": {
- "dom-serializer": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz",
- "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==",
- "requires": {
- "domelementtype": "^2.0.1",
- "entities": "^2.0.0"
- },
- "dependencies": {
- "domelementtype": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz",
- "integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w=="
- },
- "entities": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
- "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A=="
- }
- }
- },
- "domelementtype": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
- "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w=="
- },
- "domhandler": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz",
- "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
- "requires": {
- "domelementtype": "1"
- }
- },
- "domutils": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz",
- "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==",
- "requires": {
- "dom-serializer": "0",
- "domelementtype": "1"
- }
- },
"entities": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
@@ -2042,18 +6169,33 @@
"string_decoder": "^1.1.1",
"util-deprecate": "^1.0.1"
}
+ },
+ "safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
+ },
+ "string_decoder": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+ "requires": {
+ "safe-buffer": "~5.2.0"
+ }
}
}
},
"htmlparser2": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz",
- "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==",
+ "version": "3.8.3",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz",
+ "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=",
+ "dev": true,
"requires": {
- "domelementtype": "^2.0.1",
- "domhandler": "^4.0.0",
- "domutils": "^2.5.2",
- "entities": "^2.0.0"
+ "domelementtype": "1",
+ "domhandler": "2.3",
+ "domutils": "1.5",
+ "entities": "1.0",
+ "readable-stream": "1.1"
}
},
"http-errors": {
@@ -2066,13 +6208,6 @@
"setprototypeof": "1.1.1",
"statuses": ">= 1.5.0 < 2",
"toidentifier": "1.0.0"
- },
- "dependencies": {
- "inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
- }
}
},
"http-proxy-agent": {
@@ -2083,46 +6218,6 @@
"@tootallnate/once": "1",
"agent-base": "6",
"debug": "4"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
- "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- }
- }
- },
- "http-response-object": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz",
- "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==",
- "requires": {
- "@types/node": "^10.0.3"
- },
- "dependencies": {
- "@types/node": {
- "version": "10.17.59",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.59.tgz",
- "integrity": "sha512-7Uc8IRrL8yZz5ti45RaFxpbU8TxlzdC3HvxV+hOWo1EyLsuKv/w7y0n+TwZzwL3vdx3oZ2k3ubxPq131hNtXyg=="
- }
- }
- },
- "http-signature": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
- "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
- "requires": {
- "assert-plus": "^1.0.0",
- "jsprim": "^1.2.2",
- "sshpk": "^1.7.0"
}
},
"https-proxy-agent": {
@@ -2132,28 +6227,8 @@
"requires": {
"agent-base": "6",
"debug": "4"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
- "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- }
}
},
- "human-time": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/human-time/-/human-time-0.0.2.tgz",
- "integrity": "sha512-sbYI90YhYmstslPTb70BLGjy6mdESa0lxL7uDR4fIVAx9Iobz8fLEqi7FqF4Q/6vblrzZALg//MsYJlIPBU8SA=="
- },
"iconv-lite": {
"version": "0.4.24",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
@@ -2167,6 +6242,12 @@
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
},
+ "ignore": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
+ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
+ "dev": true
+ },
"imageapi.js": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/imageapi.js/-/imageapi.js-1.7.0.tgz",
@@ -2175,6 +6256,22 @@
"node-fetch": "^2.6.1"
}
},
+ "import-fresh": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "dev": true,
+ "requires": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ }
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+ "dev": true
+ },
"inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@@ -2185,9 +6282,9 @@
}
},
"inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
},
"ini": {
"version": "1.3.8",
@@ -2199,29 +6296,11 @@
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
"integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
},
- "is-core-module": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.3.0.tgz",
- "integrity": "sha512-xSphU2KG9867tsYdLD4RWQ1VqdFl4HTO9Thf3I/3dLEfr0dbPTWKsuCKrgqMljg4nPE+Gq0VCnzT3gr0CyBmsw==",
- "requires": {
- "has": "^1.0.3"
- }
- },
- "is-expression": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz",
- "integrity": "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==",
- "requires": {
- "acorn": "^7.1.1",
- "object-assign": "^4.1.1"
- },
- "dependencies": {
- "acorn": {
- "version": "7.4.1",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
- "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A=="
- }
- }
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+ "dev": true
},
"is-fullwidth-code-point": {
"version": "1.0.0",
@@ -2231,129 +6310,65 @@
"number-is-nan": "^1.0.0"
}
},
- "is-plain-obj": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
- "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA=="
+ "is-glob": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
+ "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^2.1.1"
+ }
},
"is-potential-custom-element-name": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
"integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ=="
},
- "is-promise": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz",
- "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ=="
- },
- "is-regex": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz",
- "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==",
- "requires": {
- "call-bind": "^1.0.2",
- "has-symbols": "^1.0.1"
- }
- },
- "is-typedarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
- },
"isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "dev": true
},
- "iso8601-duration": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/iso8601-duration/-/iso8601-duration-1.3.0.tgz",
- "integrity": "sha512-K4CiUBzo3YeWk76FuET/dQPH03WE04R94feo5TSKQCXpoXQt9E4yx2CnY737QZnSAI3PI4WlKo/zfqizGx52QQ=="
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+ "dev": true
},
- "isstream": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
- "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
- },
- "jake": {
- "version": "10.8.2",
- "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz",
- "integrity": "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==",
- "requires": {
- "async": "0.9.x",
- "chalk": "^2.4.2",
- "filelist": "^1.0.1",
- "minimatch": "^3.0.4"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "requires": {
- "color-convert": "^1.9.0"
- }
- },
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- }
- },
- "color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "requires": {
- "color-name": "1.1.3"
- }
- },
- "color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
- },
- "has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
- },
- "supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "requires": {
- "has-flag": "^3.0.0"
- }
- }
- }
+ "javascript-natural-sort": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz",
+ "integrity": "sha1-+eIwPUUH9tdDVac2ZNFED7Wg71k="
},
"javascript-stringify": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-2.1.0.tgz",
"integrity": "sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg=="
},
- "js-stringify": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz",
- "integrity": "sha1-Fzb939lyTyijaCrcYjCufk6Weds="
+ "js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "dev": true
},
- "jsbn": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
- "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
+ "js-yaml": {
+ "version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+ "dev": true,
+ "requires": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ }
},
"jsdom": {
- "version": "16.5.3",
- "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.5.3.tgz",
- "integrity": "sha512-Qj1H+PEvUsOtdPJ056ewXM4UJPCi4hhLA8wpiz9F2YvsRBhuFsXxtrIFAgGBDynQA9isAMGE91PfUYbdMPXuTA==",
+ "version": "16.6.0",
+ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.6.0.tgz",
+ "integrity": "sha512-Ty1vmF4NHJkolaEmdjtxTfSfkdb8Ywarwf63f+F8/mDD1uLSSWDxDuMiZxiPhwunLrn9LOSVItWj4bLYsLN3Dg==",
"requires": {
"abab": "^2.0.5",
- "acorn": "^8.1.0",
+ "acorn": "^8.2.4",
"acorn-globals": "^6.0.0",
"cssom": "^0.4.4",
"cssstyle": "^2.3.0",
@@ -2361,12 +6376,13 @@
"decimal.js": "^10.2.1",
"domexception": "^2.0.1",
"escodegen": "^2.0.0",
+ "form-data": "^3.0.0",
"html-encoding-sniffer": "^2.0.1",
- "is-potential-custom-element-name": "^1.0.0",
+ "http-proxy-agent": "^4.0.1",
+ "https-proxy-agent": "^5.0.0",
+ "is-potential-custom-element-name": "^1.0.1",
"nwsapi": "^2.2.0",
"parse5": "6.0.1",
- "request": "^2.88.2",
- "request-promise-native": "^1.0.9",
"saxes": "^5.0.1",
"symbol-tree": "^3.2.4",
"tough-cookie": "^4.0.0",
@@ -2376,31 +6392,52 @@
"whatwg-encoding": "^1.0.5",
"whatwg-mimetype": "^2.3.0",
"whatwg-url": "^8.5.0",
- "ws": "^7.4.4",
+ "ws": "^7.4.5",
"xml-name-validator": "^3.0.0"
},
"dependencies": {
- "ws": {
- "version": "7.4.6",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz",
- "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A=="
+ "acorn": {
+ "version": "8.4.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz",
+ "integrity": "sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA=="
}
}
},
- "json-schema": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
- "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
+ "jshint": {
+ "version": "2.13.0",
+ "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.13.0.tgz",
+ "integrity": "sha512-Nd+md9wIeyfDK+RGrbOBzwLONSTdihGMtyGYU/t7zYcN2EgUa4iuY3VK2oxtPYrW5ycTj18iC+UbhNTxe4C66g==",
+ "dev": true,
+ "requires": {
+ "cli": "~1.0.0",
+ "console-browserify": "1.1.x",
+ "exit": "0.1.x",
+ "htmlparser2": "3.8.x",
+ "lodash": "~4.17.21",
+ "minimatch": "~3.0.2",
+ "shelljs": "0.3.x",
+ "strip-json-comments": "1.0.x"
+ },
+ "dependencies": {
+ "strip-json-comments": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz",
+ "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=",
+ "dev": true
+ }
+ }
},
"json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true
},
- "json-stringify-safe": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
- "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
+ "json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
+ "dev": true
},
"jsonfile": {
"version": "2.4.0",
@@ -2410,77 +6447,11 @@
"graceful-fs": "^4.1.6"
}
},
- "jsonpath-plus": {
- "version": "5.0.7",
- "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-5.0.7.tgz",
- "integrity": "sha512-7TS6wsiw1s2UMK/A6nA4n0aUJuirCVhJ87nWX5je5MPOl0z5VTr2qs7nMP8NZ2ed3rlt6kePTqddgVPE9F0i0w=="
- },
- "jsonwebtoken": {
- "version": "8.5.1",
- "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz",
- "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==",
- "requires": {
- "jws": "^3.2.2",
- "lodash.includes": "^4.3.0",
- "lodash.isboolean": "^3.0.3",
- "lodash.isinteger": "^4.0.4",
- "lodash.isnumber": "^3.0.3",
- "lodash.isplainobject": "^4.0.6",
- "lodash.isstring": "^4.0.1",
- "lodash.once": "^4.0.0",
- "ms": "^2.1.1",
- "semver": "^5.6.0"
- }
- },
- "jsprim": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
- "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
- "requires": {
- "assert-plus": "1.0.0",
- "extsprintf": "1.3.0",
- "json-schema": "0.2.3",
- "verror": "1.10.0"
- }
- },
- "jstransformer": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz",
- "integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=",
- "requires": {
- "is-promise": "^2.0.0",
- "promise": "^7.0.1"
- }
- },
- "jwa": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
- "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
- "requires": {
- "buffer-equal-constant-time": "1.0.1",
- "ecdsa-sig-formatter": "1.0.11",
- "safe-buffer": "^5.0.1"
- }
- },
- "jws": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
- "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
- "requires": {
- "jwa": "^1.4.1",
- "safe-buffer": "^5.0.1"
- }
- },
"kareem": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.2.tgz",
"integrity": "sha512-STHz9P7X2L4Kwn72fA4rGyqyXdmrMSdxqHx9IXon/FXluXieaFA6KJ2upcHAHxQPQ0LeM/OjLrhFxifHewOALQ=="
},
- "keypress": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/keypress/-/keypress-0.2.1.tgz",
- "integrity": "sha1-HoBFQlABjbrUw/6USX1uZ7YmnHc="
- },
"klaw": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz",
@@ -2489,26 +6460,19 @@
"graceful-fs": "^4.1.9"
}
},
- "kruptein": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/kruptein/-/kruptein-3.0.0.tgz",
- "integrity": "sha512-Fh5sIb+3XI9L12GsgeBQqXVRPLB1HVViKSUkqPPOcqTEX4NwoF8Z3pEfMSl3Psd1j+QlloV8Uxxwp4gk3aFBGA==",
- "requires": {
- "asn1.js": "^5.4.1"
- }
- },
"leven": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
"integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A=="
},
"levn": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
- "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+ "dev": true,
"requires": {
- "prelude-ls": "~1.1.2",
- "type-check": "~0.3.2"
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
}
},
"lodash": {
@@ -2516,100 +6480,23 @@
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
},
- "lodash.assignin": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz",
- "integrity": "sha1-uo31+4QesKPoBEIysOJjqNxqKKI="
- },
- "lodash.bind": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz",
- "integrity": "sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU="
- },
- "lodash.defaults": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz",
- "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw="
- },
- "lodash.filter": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz",
- "integrity": "sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4="
- },
- "lodash.flatten": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz",
- "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8="
- },
- "lodash.foreach": {
+ "lodash.clonedeep": {
"version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz",
- "integrity": "sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM="
- },
- "lodash.includes": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
- "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8="
- },
- "lodash.isboolean": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
- "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY="
- },
- "lodash.isinteger": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz",
- "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M="
- },
- "lodash.isnumber": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
- "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w="
- },
- "lodash.isplainobject": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
- "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs="
- },
- "lodash.isstring": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
- "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE="
- },
- "lodash.map": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz",
- "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM="
+ "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
+ "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=",
+ "dev": true
},
"lodash.merge": {
"version": "4.6.2",
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
- "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
+ "dev": true
},
- "lodash.once": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
- "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w="
- },
- "lodash.pick": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz",
- "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM="
- },
- "lodash.reduce": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz",
- "integrity": "sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs="
- },
- "lodash.reject": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz",
- "integrity": "sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU="
- },
- "lodash.some": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz",
- "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0="
+ "lodash.truncate": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz",
+ "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=",
+ "dev": true
},
"loglevel": {
"version": "1.7.1",
@@ -2617,26 +6504,12 @@
"integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw=="
},
"lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
+ "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
"requires": {
- "yallist": "^4.0.0"
- },
- "dependencies": {
- "yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
- }
- }
- },
- "lru-queue": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz",
- "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=",
- "requires": {
- "es5-ext": "~0.10.2"
+ "pseudomap": "^1.0.2",
+ "yallist": "^2.1.2"
}
},
"lyrics-finder": {
@@ -2650,9 +6523,9 @@
}
},
"m3u8stream": {
- "version": "0.8.3",
- "resolved": "https://registry.npmjs.org/m3u8stream/-/m3u8stream-0.8.3.tgz",
- "integrity": "sha512-0nAcdrF8YJKUkb6PzWdvGftTPyCVWgoiot1AkNVbPKTeIGsWs6DrOjifrJ0Zi8WQfQmD2SuVCjkYIOip12igng==",
+ "version": "0.8.4",
+ "resolved": "https://registry.npmjs.org/m3u8stream/-/m3u8stream-0.8.4.tgz",
+ "integrity": "sha512-sco80Db+30RvcaIOndenX6E6oQNgTiBKeJbFPc+yDXwPQIkryfboEbCvXPlBRq3mQTCVPQO93TDVlfRwqpD35w==",
"requires": {
"miniget": "^4.0.0",
"sax": "^1.2.4"
@@ -2673,33 +6546,27 @@
}
}
},
+ "mathjs": {
+ "version": "9.4.4",
+ "resolved": "https://registry.npmjs.org/mathjs/-/mathjs-9.4.4.tgz",
+ "integrity": "sha512-5EEJXnWOzLDgMHSFyw623nH+MTBZxquWwXtrzTsingOouJJ6UZG2VNO1lwH31IMt9aMno1axO6TYleIP4YSDaQ==",
+ "requires": {
+ "@babel/runtime": "^7.14.6",
+ "complex.js": "^2.0.15",
+ "decimal.js": "^10.3.1",
+ "escape-latex": "^1.2.0",
+ "fraction.js": "^4.1.1",
+ "javascript-natural-sort": "^0.7.1",
+ "seedrandom": "^3.0.5",
+ "tiny-emitter": "^2.1.0",
+ "typed-function": "^2.0.0"
+ }
+ },
"media-typer": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
"integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
},
- "memoizee": {
- "version": "0.4.15",
- "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz",
- "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==",
- "requires": {
- "d": "^1.0.1",
- "es5-ext": "^0.10.53",
- "es6-weak-map": "^2.0.3",
- "event-emitter": "^0.3.5",
- "is-promise": "^2.2.2",
- "lru-queue": "^0.1.0",
- "next-tick": "^1.1.0",
- "timers-ext": "^0.1.7"
- },
- "dependencies": {
- "next-tick": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz",
- "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ=="
- }
- }
- },
"memory-pager": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz",
@@ -2711,40 +6578,6 @@
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
"integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
},
- "merge-options": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz",
- "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==",
- "requires": {
- "is-plain-obj": "^2.1.0"
- }
- },
- "method-override": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/method-override/-/method-override-3.0.0.tgz",
- "integrity": "sha512-IJ2NNN/mSl9w3kzWB92rcdHpz+HjkxhDJWNDBqSlas+zQdP8wBiJzITPg08M/k2uVvMow7Sk41atndNtt/PHSA==",
- "requires": {
- "debug": "3.1.0",
- "methods": "~1.1.2",
- "parseurl": "~1.3.2",
- "vary": "~1.1.2"
- },
- "dependencies": {
- "debug": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
- "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
- "requires": {
- "ms": "2.0.0"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
- }
- }
- },
"methods": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
@@ -2756,16 +6589,16 @@
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
},
"mime-db": {
- "version": "1.45.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz",
- "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w=="
+ "version": "1.48.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz",
+ "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ=="
},
"mime-types": {
- "version": "2.1.28",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz",
- "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==",
+ "version": "2.1.31",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz",
+ "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==",
"requires": {
- "mime-db": "1.45.0"
+ "mime-db": "1.48.0"
}
},
"mimic-response": {
@@ -2774,14 +6607,9 @@
"integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA=="
},
"miniget": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/miniget/-/miniget-4.1.0.tgz",
- "integrity": "sha512-kzhrNv5L7LlomwGmPGQsLQ2PnT1LeJJWfB0wNFGyv426gEM1gsfziBQmfkr6XOBA8EusZg9nowlNT5CbuKTjZg=="
- },
- "minimalistic-assert": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
- "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/miniget/-/miniget-4.2.1.tgz",
+ "integrity": "sha512-O/DduzDR6f+oDtVype9S/Qu5hhnx73EDYGyZKwU/qN82lehFZdfhoa4DT51SpsO+8epYrB3gcRmws56ROfTIoQ=="
},
"minimatch": {
"version": "3.0.4",
@@ -2796,6 +6624,42 @@
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
},
+ "minipass": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz",
+ "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==",
+ "requires": {
+ "yallist": "^4.0.0"
+ },
+ "dependencies": {
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ }
+ }
+ },
+ "minizlib": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
+ "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
+ "requires": {
+ "minipass": "^3.0.0",
+ "yallist": "^4.0.0"
+ },
+ "dependencies": {
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ }
+ }
+ },
+ "mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="
+ },
"mkdirp-classic": {
"version": "0.5.3",
"resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
@@ -2811,14 +6675,6 @@
"resolved": "https://registry.npmjs.org/moment-duration-format/-/moment-duration-format-2.3.2.tgz",
"integrity": "sha512-cBMXjSW+fjOb4tyaVHuaVE/A5TqkukDWiOfxxAjY+PEqmmBQlLwn+8OzwPiG3brouXKY5Un4pBjAeB6UToXHaQ=="
},
- "moment-timezone": {
- "version": "0.5.33",
- "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.33.tgz",
- "integrity": "sha512-PTc2vcT8K9J5/9rDEPe5czSIKgLoGsH8UNpA4qZTVw0Vd/Uz19geE9abbIOQKaAQFcnQ3v5YEXrbSc5BpshH+w==",
- "requires": {
- "moment": ">= 2.9.0"
- }
- },
"mongodb": {
"version": "3.6.8",
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.6.8.tgz",
@@ -2833,11 +6689,12 @@
}
},
"mongoose": {
- "version": "5.12.11",
- "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.12.11.tgz",
- "integrity": "sha512-16TVqYhHQdZNR8RTis/8iiTPy+nJPq0UhKyBFTucLLU3PWcDLY2gAGv6aOk0LygTNhEfgNnENgUUHhjVqTuh8w==",
+ "version": "5.13.2",
+ "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.13.2.tgz",
+ "integrity": "sha512-sBUKJGpdwZCq9102Lj6ZOaLcW4z/T4TI9aGWrNX5ZlICwChKWG4Wo5qriLImdww3H7bETPW9vYtSiADNlA4wSQ==",
"requires": {
"@types/mongodb": "^3.5.27",
+ "@types/node": "14.x || 15.x",
"bson": "^1.1.4",
"kareem": "2.3.2",
"mongodb": "3.6.8",
@@ -2866,7 +6723,8 @@
"mongoose-legacy-pluralize": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz",
- "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ=="
+ "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ==",
+ "requires": {}
},
"mpath": {
"version": "0.8.3",
@@ -2915,76 +6773,37 @@
"resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz",
"integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg=="
},
+ "natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
+ "dev": true
+ },
"negotiator": {
"version": "0.6.2",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
"integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
},
- "next-tick": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
- "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw="
- },
"node-abi": {
- "version": "2.19.3",
- "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.19.3.tgz",
- "integrity": "sha512-9xZrlyfvKhWme2EXFKQhZRp1yNWT/uI1luYPr3sFl+H4keYY4xR+1jO7mvTTijIsHf1M+QDe9uWuKeEpLInIlg==",
+ "version": "2.30.0",
+ "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.0.tgz",
+ "integrity": "sha512-g6bZh3YCKQRdwuO/tSZZYJAw622SjsRfJ2X0Iy4sSOHZ34/sPPdVBn8fev2tj7njzLwuqPw9uMtGsGkO5kIQvg==",
"requires": {
"semver": "^5.4.1"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+ }
}
},
- "node-addon-api": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.1.0.tgz",
- "integrity": "sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw=="
- },
"node-fetch": {
"version": "2.6.1",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
"integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="
},
- "node-fzf": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/node-fzf/-/node-fzf-0.5.3.tgz",
- "integrity": "sha512-crN8rRfApu/GUrtKq+zJ6LueUyNAOJpFHxoT2Ru1Q+OYRa/F/H7CXvzcMrFc7D964yakYZEZ9XR3YbdSHXgyCw==",
- "requires": {
- "cli-color": "~1.2.0",
- "keypress": "~0.2.1",
- "minimist": "~1.2.0",
- "redstar": "0.0.2",
- "string-width": "~2.1.1",
- "ttys": "0.0.3"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
- },
- "is-fullwidth-code-point": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
- },
- "string-width": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
- "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
- "requires": {
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^4.0.0"
- }
- },
- "strip-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
- "requires": {
- "ansi-regex": "^3.0.0"
- }
- }
- }
- },
"node-superfetch": {
"version": "0.1.11",
"resolved": "https://registry.npmjs.org/node-superfetch/-/node-superfetch-0.1.11.tgz",
@@ -2994,10 +6813,13 @@
"node-fetch": "^2.6.0"
}
},
- "noop-logger": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz",
- "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI="
+ "nopt": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
+ "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==",
+ "requires": {
+ "abbrev": "1"
+ }
},
"npmlog": {
"version": "4.1.2",
@@ -3010,14 +6832,6 @@
"set-blocking": "~2.0.0"
}
},
- "nth-check": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.0.tgz",
- "integrity": "sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q==",
- "requires": {
- "boolbase": "^1.0.0"
- }
- },
"number-is-nan": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
@@ -3028,16 +6842,6 @@
"resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz",
"integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ=="
},
- "oauth": {
- "version": "0.9.15",
- "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz",
- "integrity": "sha1-vR/vr2hslrdUda7VGWQS/2DPucE="
- },
- "oauth-sign": {
- "version": "0.9.0",
- "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
- "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
- },
"object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
@@ -3070,32 +6874,27 @@
"integrity": "sha512-RV2Zp2MY2aeYK5G+B/Sps8lW5NHAzE5QClbFP15j+PWmP+T9PxlJXBOOLoSAdgwFvS4t0aMR4vpedMkbHfh0nA=="
},
"optionator": {
- "version": "0.8.3",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
- "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
+ "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
+ "dev": true,
"requires": {
- "deep-is": "~0.1.3",
- "fast-levenshtein": "~2.0.6",
- "levn": "~0.3.0",
- "prelude-ls": "~1.1.2",
- "type-check": "~0.3.2",
- "word-wrap": "~1.2.3"
+ "deep-is": "^0.1.3",
+ "fast-levenshtein": "^2.0.6",
+ "levn": "^0.4.1",
+ "prelude-ls": "^1.2.1",
+ "type-check": "^0.4.0",
+ "word-wrap": "^1.2.3"
}
},
- "opusscript": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/opusscript/-/opusscript-0.0.8.tgz",
- "integrity": "sha512-VSTi1aWFuCkRCVq+tx/BQ5q9fMnQ9pVZ3JU4UHKqTkf0ED3fKEPdr+gKAAl3IA2hj9rrP6iyq3hlcJq3HELtNQ=="
- },
- "parse-cache-control": {
+ "parent-module": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz",
- "integrity": "sha1-juqz5U+laSD+Fro493+iGqzC104="
- },
- "parse-ms": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz",
- "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA=="
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "dev": true,
+ "requires": {
+ "callsites": "^3.0.0"
+ }
},
"parse-redis-url": {
"version": "0.0.2",
@@ -3107,99 +6906,36 @@
"resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
"integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw=="
},
- "parse5-htmlparser2-tree-adapter": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz",
- "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==",
- "requires": {
- "parse5": "^6.0.1"
- }
- },
"parseurl": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
"integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
},
- "passport": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/passport/-/passport-0.4.1.tgz",
- "integrity": "sha512-IxXgZZs8d7uFSt3eqNjM9NQ3g3uQCW5avD8mRNoXV99Yig50vjuaez6dQK2qC0kVWPRTujxY0dWgGfT09adjYg==",
- "requires": {
- "passport-strategy": "1.x.x",
- "pause": "0.0.1"
- }
- },
- "passport-discord": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/passport-discord/-/passport-discord-0.1.4.tgz",
- "integrity": "sha512-VJWPYqSOmh7SaCLw/C+k1ZqCzJnn2frrmQRx1YrcPJ3MQ+Oa31XclbbmqFICSvl8xv3Fqd6YWQ4H4p1MpIN9rA==",
- "requires": {
- "passport-oauth2": "^1.5.0"
- }
- },
- "passport-oauth2": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/passport-oauth2/-/passport-oauth2-1.5.0.tgz",
- "integrity": "sha512-kqBt6vR/5VlCK8iCx1/KpY42kQ+NEHZwsSyt4Y6STiNjU+wWICG1i8ucc1FapXDGO15C5O5VZz7+7vRzrDPXXQ==",
- "requires": {
- "base64url": "3.x.x",
- "oauth": "0.9.x",
- "passport-strategy": "1.x.x",
- "uid2": "0.0.x",
- "utils-merge": "1.x.x"
- }
- },
- "passport-strategy": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz",
- "integrity": "sha1-tVOaqPwiWj0a0XlHbd8ja0QPUuQ="
- },
- "path": {
- "version": "0.12.7",
- "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz",
- "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=",
- "requires": {
- "process": "^0.11.1",
- "util": "^0.10.3"
- }
- },
"path-is-absolute": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
},
- "path-parse": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
- "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="
+ "path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "dev": true
},
"path-to-regexp": {
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
"integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
},
- "pause": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz",
- "integrity": "sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10="
- },
- "performance-now": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
- "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
- },
- "phin": {
- "version": "3.5.1",
- "resolved": "https://registry.npmjs.org/phin/-/phin-3.5.1.tgz",
- "integrity": "sha512-jgFO28IaiWAl0xk+zmqVx7neKVokWKU8YTQC5QlB45SZnEE53LH2saqJIcyIV557VX3Gk+TdR4rwWTc3P83DSA==",
- "requires": {
- "centra": "^2.4.2"
- }
+ "petitio": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/petitio/-/petitio-1.3.2.tgz",
+ "integrity": "sha512-hbbT+rOvovz39ZneGW+C8B4YsKH20KLXYVDT/IzSUxaY8H7al/TO+vFCm+H5cnYe62gIqF9ak5p8OJktV/I0Ig=="
},
"prebuild-install": {
- "version": "5.3.6",
- "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.6.tgz",
- "integrity": "sha512-s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg==",
+ "version": "6.1.3",
+ "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.1.3.tgz",
+ "integrity": "sha512-iqqSR84tNYQUQHRXalSKdIaM8Ov1QxOVuBNWI7+BzZWv6Ih9k75wOnH1rGQ9WWTaaLkTpxWKIciOF0KyfM74+Q==",
"requires": {
"detect-libc": "^1.0.3",
"expand-template": "^2.0.3",
@@ -3207,31 +6943,32 @@
"minimist": "^1.2.3",
"mkdirp-classic": "^0.5.3",
"napi-build-utils": "^1.0.1",
- "node-abi": "^2.7.0",
- "noop-logger": "^0.1.1",
+ "node-abi": "^2.21.0",
"npmlog": "^4.0.1",
"pump": "^3.0.0",
"rc": "^1.2.7",
"simple-get": "^3.0.3",
"tar-fs": "^2.0.0",
- "tunnel-agent": "^0.6.0",
- "which-pm-runs": "^1.0.0"
+ "tunnel-agent": "^0.6.0"
}
},
"prelude-ls": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
- "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ="
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+ "dev": true
+ },
+ "prettier": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.2.tgz",
+ "integrity": "sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ==",
+ "dev": true
},
"prism-media": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.2.9.tgz",
- "integrity": "sha512-UHCYuqHipbTR1ZsXr5eg4JUmHER8Ss4YEb9Azn+9zzJ7/jlTtD1h0lc4g6tNx3eMlB8Mp6bfll0LPMAV4R6r3Q=="
- },
- "process": {
- "version": "0.11.10",
- "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
- "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI="
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.3.1.tgz",
+ "integrity": "sha512-nyYAa3KB4qteJIqdguKmwxTJgy55xxUtkJ3uRnOvO5jO+frci+9zpRXw6QZVcfDeva3S654fU9+26P2OSTzjHw==",
+ "requires": {}
},
"process-nextick-args": {
"version": "2.0.1",
@@ -3241,22 +6978,15 @@
"progress": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
- "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA=="
- },
- "promise": {
- "version": "7.3.1",
- "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
- "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
- "requires": {
- "asap": "~2.0.3"
- }
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
+ "dev": true
},
"proxy-addr": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
- "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==",
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
+ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
"requires": {
- "forwarded": "~0.1.2",
+ "forwarded": "0.2.0",
"ipaddr.js": "1.9.1"
}
},
@@ -3270,118 +7000,6 @@
"resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
"integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
},
- "pug": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/pug/-/pug-3.0.2.tgz",
- "integrity": "sha512-bp0I/hiK1D1vChHh6EfDxtndHji55XP/ZJKwsRqrz6lRia6ZC2OZbdAymlxdVFwd1L70ebrVJw4/eZ79skrIaw==",
- "requires": {
- "pug-code-gen": "^3.0.2",
- "pug-filters": "^4.0.0",
- "pug-lexer": "^5.0.1",
- "pug-linker": "^4.0.0",
- "pug-load": "^3.0.0",
- "pug-parser": "^6.0.0",
- "pug-runtime": "^3.0.1",
- "pug-strip-comments": "^2.0.0"
- }
- },
- "pug-attrs": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-3.0.0.tgz",
- "integrity": "sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==",
- "requires": {
- "constantinople": "^4.0.1",
- "js-stringify": "^1.0.2",
- "pug-runtime": "^3.0.0"
- }
- },
- "pug-code-gen": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.2.tgz",
- "integrity": "sha512-nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg==",
- "requires": {
- "constantinople": "^4.0.1",
- "doctypes": "^1.1.0",
- "js-stringify": "^1.0.2",
- "pug-attrs": "^3.0.0",
- "pug-error": "^2.0.0",
- "pug-runtime": "^3.0.0",
- "void-elements": "^3.1.0",
- "with": "^7.0.0"
- }
- },
- "pug-error": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz",
- "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ=="
- },
- "pug-filters": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-4.0.0.tgz",
- "integrity": "sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==",
- "requires": {
- "constantinople": "^4.0.1",
- "jstransformer": "1.0.0",
- "pug-error": "^2.0.0",
- "pug-walk": "^2.0.0",
- "resolve": "^1.15.1"
- }
- },
- "pug-lexer": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.1.tgz",
- "integrity": "sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==",
- "requires": {
- "character-parser": "^2.2.0",
- "is-expression": "^4.0.0",
- "pug-error": "^2.0.0"
- }
- },
- "pug-linker": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-4.0.0.tgz",
- "integrity": "sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==",
- "requires": {
- "pug-error": "^2.0.0",
- "pug-walk": "^2.0.0"
- }
- },
- "pug-load": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-3.0.0.tgz",
- "integrity": "sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==",
- "requires": {
- "object-assign": "^4.1.1",
- "pug-walk": "^2.0.0"
- }
- },
- "pug-parser": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-6.0.0.tgz",
- "integrity": "sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==",
- "requires": {
- "pug-error": "^2.0.0",
- "token-stream": "1.0.0"
- }
- },
- "pug-runtime": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-3.0.1.tgz",
- "integrity": "sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg=="
- },
- "pug-strip-comments": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz",
- "integrity": "sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==",
- "requires": {
- "pug-error": "^2.0.0"
- }
- },
- "pug-walk": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-2.0.0.tgz",
- "integrity": "sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ=="
- },
"pump": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
@@ -3397,9 +7015,9 @@
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
},
"qs": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
- "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
+ "version": "6.7.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
+ "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
},
"quick.db": {
"version": "7.1.3",
@@ -3411,9 +7029,9 @@
}
},
"quickchart-js": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/quickchart-js/-/quickchart-js-1.0.7.tgz",
- "integrity": "sha512-ck+0VgrYDqU1YZ3q39rPhr9DmxoPByUhV3YMwDedYNX5admxjSlbQM9BLjavYpKQEdbTwG9tbkCUakbSf0ke1Q==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/quickchart-js/-/quickchart-js-1.2.0.tgz",
+ "integrity": "sha512-7p28IW3S8wOvw4NppwrC8Lm3uxhNdgafM6uZ73mUucQMyaZOBY1farkPhcn8QLpX2FnBdk0gy+ibKB12Wy8Vqw==",
"requires": {
"axios": "^0.21.1",
"javascript-stringify": "^2.0.1"
@@ -3457,20 +7075,25 @@
"ini": "~1.3.0",
"minimist": "^1.2.0",
"strip-json-comments": "~2.0.1"
+ },
+ "dependencies": {
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo="
+ }
}
},
"readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+ "dev": true,
"requires": {
"core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
}
},
"recacheman-file": {
@@ -3488,60 +7111,17 @@
"integrity": "sha512-FqaAJ0Rn0yZaGPPKI6aAb6z5PbPLKGhlZnCWRB2vYzBtPOx3c/PhCT3B1jt1zjkVjDNLs06+NGRoK3GY/A0qsw==",
"requires": {
"lru-cache": "~4.1.x"
- },
- "dependencies": {
- "lru-cache": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
- "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
- "requires": {
- "pseudomap": "^1.0.2",
- "yallist": "^2.1.2"
- }
- },
- "yallist": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
- "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
- }
}
},
"reconlx": {
- "version": "1.2.41",
- "resolved": "https://registry.npmjs.org/reconlx/-/reconlx-1.2.41.tgz",
- "integrity": "sha512-wewcAeqwqyFHvyQG4zDYc61IbJySwEKU50XSXEMBl6KCUhcNvmeI4A0nJ+dKaS6W3ElQkWhe+3Nk2x2fJ5Mi1g==",
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/reconlx/-/reconlx-1.3.3.tgz",
+ "integrity": "sha512-X16C+MByiUERk+9Y62TA+L/u4UoaLAWr97ml9Eu8ON0jqXP9fngiMdqMZMKsVizMrLtyRwVOnerH7gqLX/b34Q==",
"requires": {
"discord.js": "^12.5.1",
"jsdom": "^16.4.0",
"mongoose": "^5.10.15",
"ms": "^2.1.2"
- },
- "dependencies": {
- "discord.js": {
- "version": "12.5.3",
- "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-12.5.3.tgz",
- "integrity": "sha512-D3nkOa/pCkNyn6jLZnAiJApw2N9XrIsXUAdThf01i7yrEuqUmDGc7/CexVWwEcgbQR97XQ+mcnqJpmJ/92B4Aw==",
- "requires": {
- "@discordjs/collection": "^0.1.6",
- "@discordjs/form-data": "^3.0.1",
- "abort-controller": "^3.0.0",
- "node-fetch": "^2.6.1",
- "prism-media": "^1.2.9",
- "setimmediate": "^1.0.5",
- "tweetnacl": "^1.0.3",
- "ws": "^7.4.4"
- }
- },
- "prism-media": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.2.9.tgz",
- "integrity": "sha512-UHCYuqHipbTR1ZsXr5eg4JUmHER8Ss4YEb9Azn+9zzJ7/jlTtD1h0lc4g6tNx3eMlB8Mp6bfll0LPMAV4R6r3Q=="
- },
- "ws": {
- "version": "7.4.6",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz",
- "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A=="
- }
}
},
"redis": {
@@ -3573,14 +7153,6 @@
"redis-errors": "^1.0.0"
}
},
- "redstar": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/redstar/-/redstar-0.0.2.tgz",
- "integrity": "sha1-nVammAY4yYUaEAsMs799PrkCBcs=",
- "requires": {
- "minimatch": "~3.0.4"
- }
- },
"regenerator-runtime": {
"version": "0.13.7",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz",
@@ -3591,118 +7163,28 @@
"resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz",
"integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw=="
},
- "request": {
- "version": "2.88.2",
- "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
- "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
- "requires": {
- "aws-sign2": "~0.7.0",
- "aws4": "^1.8.0",
- "caseless": "~0.12.0",
- "combined-stream": "~1.0.6",
- "extend": "~3.0.2",
- "forever-agent": "~0.6.1",
- "form-data": "~2.3.2",
- "har-validator": "~5.1.3",
- "http-signature": "~1.2.0",
- "is-typedarray": "~1.0.0",
- "isstream": "~0.1.2",
- "json-stringify-safe": "~5.0.1",
- "mime-types": "~2.1.19",
- "oauth-sign": "~0.9.0",
- "performance-now": "^2.1.0",
- "qs": "~6.5.2",
- "safe-buffer": "^5.1.2",
- "tough-cookie": "~2.5.0",
- "tunnel-agent": "^0.6.0",
- "uuid": "^3.3.2"
- },
- "dependencies": {
- "form-data": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
- "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
- "requires": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.6",
- "mime-types": "^2.1.12"
- }
- },
- "tough-cookie": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
- "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
- "requires": {
- "psl": "^1.1.28",
- "punycode": "^2.1.1"
- }
- }
- }
+ "regexpp": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
+ "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
+ "dev": true
},
- "request-promise-core": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz",
- "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==",
- "requires": {
- "lodash": "^4.17.19"
- }
- },
- "request-promise-native": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz",
- "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==",
- "requires": {
- "request-promise-core": "1.1.4",
- "stealthy-require": "^1.1.1",
- "tough-cookie": "^2.3.3"
- },
- "dependencies": {
- "tough-cookie": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
- "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
- "requires": {
- "psl": "^1.1.28",
- "punycode": "^2.1.1"
- }
- }
- }
- },
- "require_optional": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz",
- "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==",
- "requires": {
- "resolve-from": "^2.0.0",
- "semver": "^5.1.0"
- }
- },
- "resolve": {
- "version": "1.20.0",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
- "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
- "requires": {
- "is-core-module": "^2.2.0",
- "path-parse": "^1.0.6"
- }
+ "require-from-string": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
+ "dev": true
},
"resolve-from": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz",
- "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c="
- },
- "reverbnation-scraper": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/reverbnation-scraper/-/reverbnation-scraper-2.0.0.tgz",
- "integrity": "sha512-t1Mew5QC9QEVEry5DXyagvci2O+TgXTGoMHbNoW5NRz6LTOzK/DLHUpnrQwloX8CVX5z1a802vwHM3YgUVOvKg==",
- "requires": {
- "node-fetch": "^2.6.0"
- }
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "dev": true
},
"rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
"requires": {
"glob": "^7.1.3"
}
@@ -3747,10 +7229,33 @@
"xmlchars": "^2.2.0"
}
},
+ "seedrandom": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz",
+ "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg=="
+ },
"semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+ "version": "7.3.5",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
+ "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
+ "requires": {
+ "lru-cache": "^6.0.0"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ }
+ }
},
"send": {
"version": "0.17.1",
@@ -3837,6 +7342,27 @@
"crypt": ">= 0.0.1"
}
},
+ "shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "^3.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true
+ },
+ "shelljs": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz",
+ "integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=",
+ "dev": true
+ },
"sift": {
"version": "13.5.2",
"resolved": "https://registry.npmjs.org/sift/-/sift-13.5.2.tgz",
@@ -3862,13 +7388,23 @@
"simple-concat": "^1.0.0"
}
},
- "simple-youtube-api": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/simple-youtube-api/-/simple-youtube-api-5.2.1.tgz",
- "integrity": "sha512-vmndP9Bkh35tifn2OwY+th2imSsfYtmDqczgdOW5yEARFzvSoR8VSQFsivJnctfV5QHQUL6VrOpNdbmDRLh9Bg==",
+ "slice-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
+ "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
+ "dev": true,
"requires": {
- "iso8601-duration": "^1.2.0",
- "node-fetch": "^2.6.0"
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.0.0"
+ },
+ "dependencies": {
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true
+ }
}
},
"sliced": {
@@ -3886,6 +7422,13 @@
"dotenv": "^8.2.0",
"m3u8stream": "^0.8.0",
"soundcloud-key-fetch": "^1.0.10"
+ },
+ "dependencies": {
+ "dotenv": {
+ "version": "8.6.0",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz",
+ "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g=="
+ }
}
},
"soundcloud-key-fetch": {
@@ -3893,16 +7436,6 @@
"resolved": "https://registry.npmjs.org/soundcloud-key-fetch/-/soundcloud-key-fetch-1.0.11.tgz",
"integrity": "sha512-ofnXB3yeHGVKnFKEMBP/kIJzGu1SduQzJc+zmkPbKgelvYNsEU/aTGD0PlhmyZquaCkTGByF8CEPRrAnt7ki4g=="
},
- "soundcloud-scraper": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/soundcloud-scraper/-/soundcloud-scraper-4.0.3.tgz",
- "integrity": "sha512-A0a6sVJ2wkkWIX8Ft3L63sfHBlFDRAaPFif+SWi07KCNLh8YTcylw45pts76pndxlupKwV2NgOTIYeF/F9tg8w==",
- "requires": {
- "cheerio": "^1.0.0-rc.3",
- "m3u8stream": "^0.8.0",
- "node-fetch": "^2.6.1"
- }
- },
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
@@ -3918,58 +7451,27 @@
"memory-pager": "^1.0.2"
}
},
- "spotify-uri": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/spotify-uri/-/spotify-uri-2.2.0.tgz",
- "integrity": "sha512-uUybj02bfyfCoZ0MJ80MkqbKxtIVRJfbRGk05KJFq1li3zb7yNfN1f+TAw4wcXgp7jLWExeiw2wyPQXZ8PHtfg=="
- },
- "spotify-url-info": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/spotify-url-info/-/spotify-url-info-2.2.0.tgz",
- "integrity": "sha512-GEMoMf2RF+CSPsSGstY/9c7dgViKOKJ09bFZTwrU4KzQ+JpLq+0Ho4eMCeeGmES94yjBz+GHMtBfTcp+4DxEbA==",
- "requires": {
- "cross-fetch": "^3.0.5",
- "himalaya": "^1.1.0",
- "spotify-uri": "^2.1.0"
- }
- },
- "sshpk": {
- "version": "1.16.1",
- "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
- "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
- "requires": {
- "asn1": "~0.2.3",
- "assert-plus": "^1.0.0",
- "bcrypt-pbkdf": "^1.0.0",
- "dashdash": "^1.12.0",
- "ecc-jsbn": "~0.1.1",
- "getpass": "^0.1.1",
- "jsbn": "~0.1.0",
- "safer-buffer": "^2.0.2",
- "tweetnacl": "~0.14.0"
- },
- "dependencies": {
- "tweetnacl": {
- "version": "0.14.5",
- "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
- "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
- }
- }
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+ "dev": true
},
"statuses": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
"integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
},
- "stealthy-require": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz",
- "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks="
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+ "dev": true
},
"string-toolkit": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/string-toolkit/-/string-toolkit-1.4.0.tgz",
- "integrity": "sha512-PVCMeHy+MiMfBAAp3xk41rPsLsIBFm0KE9DJaJq50Zym9vgRE6v936BwWChQceMREm6eCaQ+QNvw8PC4ft+KvA=="
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/string-toolkit/-/string-toolkit-1.4.1.tgz",
+ "integrity": "sha512-9ggIBwGTg6AS4Hg8u1EjtxUqZaIoIU004GAS+3D8zFJ6Ktkax0004kkmj2Re9FHN7670/YeDvR/wOg1/eo1Icg=="
},
"string-width": {
"version": "1.0.2",
@@ -3979,28 +7481,37 @@
"code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0",
"strip-ansi": "^3.0.0"
- }
- },
- "string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "requires": {
- "safe-buffer": "~5.1.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ }
}
},
"strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "dev": true,
"requires": {
- "ansi-regex": "^2.0.0"
+ "ansi-regex": "^5.0.0"
}
},
"strip-json-comments": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
- "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo="
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "dev": true
},
"superscript-text": {
"version": "1.0.0",
@@ -4011,6 +7522,7 @@
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
"requires": {
"has-flag": "^4.0.0"
}
@@ -4020,6 +7532,77 @@
"resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
"integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="
},
+ "table": {
+ "version": "6.7.1",
+ "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz",
+ "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==",
+ "dev": true,
+ "requires": {
+ "ajv": "^8.0.1",
+ "lodash.clonedeep": "^4.5.0",
+ "lodash.truncate": "^4.4.2",
+ "slice-ansi": "^4.0.0",
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "8.6.1",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.1.tgz",
+ "integrity": "sha512-42VLtQUOLefAvKFAQIxIZDaThq6om/PrfP0CYk3/vn+y4BMNkKnbli8ON2QCiHov4KkzOSJ/xSoBJdayiiYvVQ==",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true
+ },
+ "json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "dev": true
+ },
+ "string-width": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
+ "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ }
+ }
+ }
+ },
+ "tar": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz",
+ "integrity": "sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==",
+ "requires": {
+ "chownr": "^2.0.0",
+ "fs-minipass": "^2.0.0",
+ "minipass": "^3.0.0",
+ "minizlib": "^2.1.1",
+ "mkdirp": "^1.0.3",
+ "yallist": "^4.0.0"
+ },
+ "dependencies": {
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ }
+ }
+ },
"tar-fs": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
@@ -4029,6 +7612,13 @@
"mkdirp-classic": "^0.5.2",
"pump": "^3.0.0",
"tar-stream": "^2.1.4"
+ },
+ "dependencies": {
+ "chownr": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
+ }
}
},
"tar-stream": {
@@ -4044,15 +7634,20 @@
},
"dependencies": {
"bl": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz",
- "integrity": "sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
"requires": {
"buffer": "^5.5.0",
"inherits": "^2.0.4",
"readable-stream": "^3.4.0"
}
},
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ },
"readable-stream": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
@@ -4062,33 +7657,38 @@
"string_decoder": "^1.1.1",
"util-deprecate": "^1.0.1"
}
+ },
+ "safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
+ },
+ "string_decoder": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+ "requires": {
+ "safe-buffer": "~5.2.0"
+ }
}
}
},
- "timers-ext": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz",
- "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==",
- "requires": {
- "es5-ext": "~0.10.46",
- "next-tick": "1"
- }
+ "text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
+ "dev": true
},
- "to-fast-properties": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
- "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4="
+ "tiny-emitter": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz",
+ "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q=="
},
"toidentifier": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
"integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
},
- "token-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz",
- "integrity": "sha1-zCAOqyYT9BZtJ/+a/HylbUnfbrQ="
- },
"tough-cookie": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz",
@@ -4100,9 +7700,9 @@
}
},
"tr46": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz",
- "integrity": "sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz",
+ "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==",
"requires": {
"punycode": "^2.1.1"
}
@@ -4115,11 +7715,6 @@
"utf8-byte-length": "^1.0.1"
}
},
- "ttys": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/ttys/-/ttys-0.0.3.tgz",
- "integrity": "sha1-FbrN54MQIN5fLyjwGxcy7wNlH00="
- },
"tunnel-agent": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
@@ -4138,19 +7733,21 @@
"resolved": "https://registry.npmjs.org/twemoji-parser/-/twemoji-parser-13.1.0.tgz",
"integrity": "sha512-AQOzLJpYlpWMy8n+0ATyKKZzWlZBJN+G0C+5lhX7Ftc2PeEVdUU/7ns2Pn2vVje26AIZ/OHwFoUbdv6YYD/wGg=="
},
- "type": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
- "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg=="
- },
"type-check": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
- "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+ "dev": true,
"requires": {
- "prelude-ls": "~1.1.2"
+ "prelude-ls": "^1.2.1"
}
},
+ "type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "dev": true
+ },
"type-is": {
"version": "1.6.18",
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
@@ -4160,15 +7757,10 @@
"mime-types": "~2.1.24"
}
},
- "typedarray": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
- "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
- },
- "uid": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/uid/-/uid-1.0.0.tgz",
- "integrity": "sha512-DYp36HDIRECMW0xmeyGSDSheURMbL7gy4DqINDUW5OSw7cot0pNRNvEtEji9nk1XVDZN/0lJ7myxacoTeU9oow=="
+ "typed-function": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/typed-function/-/typed-function-2.0.0.tgz",
+ "integrity": "sha512-Hhy1Iwo/e4AtLZNK10ewVVcP2UEs408DS35ubP825w/YgSBK1KVLwALvvIG4yX75QJrxjCpcWkzkVRB0BwwYlA=="
},
"uid-safe": {
"version": "2.1.5",
@@ -4178,11 +7770,6 @@
"random-bytes": "~1.0.0"
}
},
- "uid2": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz",
- "integrity": "sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I="
- },
"universalify": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
@@ -4197,6 +7784,7 @@
"version": "4.4.1",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
"integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dev": true,
"requires": {
"punycode": "^2.1.0"
}
@@ -4206,21 +7794,6 @@
"resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz",
"integrity": "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E="
},
- "util": {
- "version": "0.10.4",
- "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz",
- "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==",
- "requires": {
- "inherits": "2.0.3"
- },
- "dependencies": {
- "inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
- }
- }
- },
"util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
@@ -4231,31 +7804,17 @@
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
"integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
},
- "uuid": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
- "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
+ "v8-compile-cache": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
+ "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
+ "dev": true
},
"vary": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
"integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
},
- "verror": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
- "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
- "requires": {
- "assert-plus": "^1.0.0",
- "core-util-is": "1.0.2",
- "extsprintf": "^1.2.0"
- }
- },
- "void-elements": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz",
- "integrity": "sha1-YU9/v42AHwu18GYfWy9XhXUOTwk="
- },
"w3c-hr-time": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz",
@@ -4278,10 +7837,12 @@
"integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w=="
},
"weky": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/weky/-/weky-1.4.2.tgz",
- "integrity": "sha512-sIu8KJgtoZ1k+r8VOLLm9GGd+mE63RU74pFoaI8Tep4aueGe9uWp61IWB3dgMWYMcU/v2Lh1WDdRduwMcWd/Lw==",
+ "version": "1.9.9",
+ "resolved": "https://registry.npmjs.org/weky/-/weky-1.9.9.tgz",
+ "integrity": "sha512-ldaCKoTC1NRv296B7trgDfocifs+hi8YvXeaitjZnTg7LxxIjZZX66NLNala6HtjEeH/dc2b0h9nrDB2DpY+/A==",
"requires": {
+ "discord-buttons": "^3.0.1",
+ "mathjs": "^9.4.2",
"ms": "^2.1.3",
"node-fetch": "^2.6.1"
}
@@ -4300,24 +7861,23 @@
"integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g=="
},
"whatwg-url": {
- "version": "8.5.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.5.0.tgz",
- "integrity": "sha512-fy+R77xWv0AiqfLl4nuGUlQ3/6b5uNfQ4WAbGQVMYshCTCCPK9psC1nWh3XHuxGVCtlcDDQPQW1csmmIQo+fwg==",
+ "version": "8.7.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz",
+ "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==",
"requires": {
"lodash": "^4.7.0",
- "tr46": "^2.0.2",
+ "tr46": "^2.1.0",
"webidl-conversions": "^6.1.0"
}
},
- "when": {
- "version": "3.7.8",
- "resolved": "https://registry.npmjs.org/when/-/when-3.7.8.tgz",
- "integrity": "sha1-xxMLan6gRpPoQs3J56Hyqjmjn4I="
- },
- "which-pm-runs": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz",
- "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs="
+ "which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
},
"wide-align": {
"version": "1.1.3",
@@ -4327,17 +7887,6 @@
"string-width": "^1.0.2 || 2"
}
},
- "with": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz",
- "integrity": "sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==",
- "requires": {
- "@babel/parser": "^7.9.6",
- "@babel/types": "^7.9.6",
- "assert-never": "^1.2.1",
- "babel-walk": "3.0.0-canary-5"
- }
- },
"word-wrap": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
@@ -4349,9 +7898,10 @@
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
},
"ws": {
- "version": "7.4.6",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz",
- "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A=="
+ "version": "7.5.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz",
+ "integrity": "sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==",
+ "requires": {}
},
"xml-name-validator": {
"version": "3.0.0",
@@ -4363,184 +7913,10 @@
"resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
"integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw=="
},
- "youtube-sr": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/youtube-sr/-/youtube-sr-4.0.6.tgz",
- "integrity": "sha512-nRrqgWl0xYfMhwLTqjF7G6s+36IHIdOMtZaSrz0Cpk4uSIqoeKEJgLiAZrYIGWGNYtS8/mzZYRzYxaIA/gW1Ig==",
- "requires": {
- "node-fetch": "^2.6.1",
- "simple-youtube-api": "^5.2.1"
- }
- },
- "yt-search": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/yt-search/-/yt-search-2.8.0.tgz",
- "integrity": "sha512-tpRiSF42vW0T5aa0ebGqsoI3lq0/QpJXQ4JFTSIyknZIxCq3h0Pvjcctdmp8Huplq90/1Ma9/rxeAhpCFPe5tw==",
- "requires": {
- "async.parallellimit": "~0.5.2",
- "boolstring": "~1.0.2",
- "cheerio": "~0.22.0",
- "dasu": "~0.4.2",
- "human-time": "0.0.2",
- "jsonpath-plus": "~5.0.2",
- "minimist": "~1.2.5",
- "node-fzf": "~0.5.1"
- },
- "dependencies": {
- "cheerio": {
- "version": "0.22.0",
- "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz",
- "integrity": "sha1-qbqoYKP5tZWmuBsahocxIe06Jp4=",
- "requires": {
- "css-select": "~1.2.0",
- "dom-serializer": "~0.1.0",
- "entities": "~1.1.1",
- "htmlparser2": "^3.9.1",
- "lodash.assignin": "^4.0.9",
- "lodash.bind": "^4.1.4",
- "lodash.defaults": "^4.0.1",
- "lodash.filter": "^4.4.0",
- "lodash.flatten": "^4.2.0",
- "lodash.foreach": "^4.3.0",
- "lodash.map": "^4.4.0",
- "lodash.merge": "^4.4.0",
- "lodash.pick": "^4.2.1",
- "lodash.reduce": "^4.4.0",
- "lodash.reject": "^4.4.0",
- "lodash.some": "^4.4.0"
- }
- },
- "css-select": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
- "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
- "requires": {
- "boolbase": "~1.0.0",
- "css-what": "2.1",
- "domutils": "1.5.1",
- "nth-check": "~1.0.1"
- }
- },
- "css-what": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz",
- "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg=="
- },
- "dom-serializer": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz",
- "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==",
- "requires": {
- "domelementtype": "^1.3.0",
- "entities": "^1.1.1"
- }
- },
- "domelementtype": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
- "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w=="
- },
- "domhandler": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz",
- "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
- "requires": {
- "domelementtype": "1"
- }
- },
- "domutils": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
- "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
- "requires": {
- "dom-serializer": "0",
- "domelementtype": "1"
- }
- },
- "entities": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
- "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w=="
- },
- "htmlparser2": {
- "version": "3.10.1",
- "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz",
- "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==",
- "requires": {
- "domelementtype": "^1.3.1",
- "domhandler": "^2.3.0",
- "domutils": "^1.5.1",
- "entities": "^1.1.1",
- "inherits": "^2.0.1",
- "readable-stream": "^3.1.1"
- }
- },
- "nth-check": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
- "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==",
- "requires": {
- "boolbase": "~1.0.0"
- }
- },
- "readable-stream": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
- "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
- "requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- }
- }
- }
- },
- "ytdl-core": {
- "version": "4.8.0",
- "resolved": "https://registry.npmjs.org/ytdl-core/-/ytdl-core-4.8.0.tgz",
- "integrity": "sha512-LFhhwqFojReoaME17VpsFeiamygM0W/YNG8O02mrmS2O6Em5LjCPiJYdq7Af3CmJtBEOCdptSZ3Ql+3LGWDGvg==",
- "requires": {
- "m3u8stream": "^0.8.3",
- "miniget": "^4.0.0",
- "sax": "^1.1.3"
- }
- },
- "ytdl-core-discord": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/ytdl-core-discord/-/ytdl-core-discord-1.3.0.tgz",
- "integrity": "sha512-AdyhfsegYyFGM6vaNWz/VOjknJ5sY9D2729tTp1uelQW0+yhHSycEC+gzjU0YY18cwwyaepQsHA0zQAvaI6pmw==",
- "requires": {
- "@types/node": "^14.14.35",
- "prism-media": "^1.2.8",
- "ytdl-core": "^4.5.0"
- },
- "dependencies": {
- "@types/node": {
- "version": "14.14.35",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.35.tgz",
- "integrity": "sha512-Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag=="
- },
- "prism-media": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.2.9.tgz",
- "integrity": "sha512-UHCYuqHipbTR1ZsXr5eg4JUmHER8Ss4YEb9Azn+9zzJ7/jlTtD1h0lc4g6tNx3eMlB8Mp6bfll0LPMAV4R6r3Q=="
- }
- }
- },
- "ytpl": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/ytpl/-/ytpl-2.2.1.tgz",
- "integrity": "sha512-sxty58s4JTNCDkiaiTkcaXfWCOW5sfHOPwDQtWIkoU4C+Kht2qat8yaLVbWZIclUSZo+naANyaI7LGjhhrErGA==",
- "requires": {
- "miniget": "^4.2.0"
- },
- "dependencies": {
- "miniget": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/miniget/-/miniget-4.2.0.tgz",
- "integrity": "sha512-IzTOaNgBw/qEpzkPTE7X2cUVXQfSKbG8w52Emi93zb+Zya2ZFrbmavpixzebuDJD9Ku4ecbaFlC7Y1cEESzQtQ=="
- }
- }
+ "yallist": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
}
}
}
diff --git a/package.json b/package.json
index a4de709..16c4d3c 100644
--- a/package.json
+++ b/package.json
@@ -30,55 +30,45 @@
"url": "https://github.com/night0721/cath/issues"
},
"homepage": "https://github.com/night0721/cath#readme",
+ "devDependencies": {
+ "eslint": "^7.30.0",
+ "eslint-config-google": "^0.14.0",
+ "jshint": "^2.13.0",
+ "prettier": "^2.3.2"
+ },
"dependencies": {
- "@discordjs/opus": "^0.5.0",
"@reconlx/discord.js": "^1.1.101",
- "aesthetically": "0.0.5",
"axios": "^0.21.1",
"canvacord": "^5.2.1",
"canvas": "^2.8.0",
"cath": "^1.0.7",
"common-tags": "^1.8.0",
- "connect-mongo": "^4.4.1",
- "disco-oauth": "^5.1.0",
- "discord-buttons": "^1.0.4",
+ "cors": "^2.8.5",
"discord-canvas": "^1.4.1",
"discord-giveaways": "^4.5.1",
- "discord-player": "^3.4.0",
- "discord-rpc": "^3.2.0",
- "discord-xp": "^1.1.14",
- "discord-ytdl-core": "^5.0.3",
- "discord.js": "github:reconlx/discord.js",
- "ejs": "^3.1.6",
+ "discord-xp": "^1.1.16",
+ "discord.js": "^12.5.3",
+ "dotenv": "^10.0.0",
+ "erela.js": "^2.3.3",
+ "erela.js-spotify": "^1.2.0",
"express": "^4.17.1",
"express-session": "^1.17.2",
- "ffmpeg": "0.0.4",
- "ffmpeg-static": "^4.3.0",
+ "figlet": "^1.5.0",
"goosecache": "^9.0.14",
"imageapi.js": "^1.7.0",
"leven": "^3.1.0",
"lyrics-finder": "^21.7.0",
- "method-override": "^3.0.0",
"moment": "^2.29.1",
- "moment-timezone": "^0.5.33",
- "mongoose": "^5.12.11",
+ "mongoose": "^5.13.2",
"ms": "^2.1.3",
+ "node-fetch": "^2.6.1",
"node-superfetch": "^0.1.11",
- "opusscript": "0.0.8",
- "passport": "^0.4.1",
- "passport-discord": "^0.1.4",
- "path": "^0.12.7",
- "pug": "^3.0.2",
"quick.db": "^7.1.3",
- "quickchart-js": "^1.0.7",
- "reconlx": "^1.2.41",
+ "quickchart-js": "^1.2.0",
+ "reconlx": "^1.3.3",
"soundcloud-downloader": "^0.2.4",
"string-toolkit": "^1.4.0",
"superscript-text": "^1.0.0",
- "weky": "^1.4.2",
- "yt-search": "^2.8.0",
- "ytdl-core": "^4.8.0",
- "ytdl-core-discord": "^1.3.0",
- "ytpl": "^2.2.1"
+ "weky": "^1.9.9"
}
}
diff --git a/util/dist/bash.sh b/util/dist/bash.sh
deleted file mode 100644
index 27480d8..0000000
--- a/util/dist/bash.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-export NVM_DIR=/home/runner/nvm
-export NODE_VERSION=14.17
-
-if ! ls $NVM_DIR > /dev/null 2>&1
-then mkdir -p $NVM_DIR
-curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
-fi
-
-[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
-nvm use $NODE_VERSION
-
-rm -rf node_modules/
-npm i
-
-if [ $(npm -v) != "6.14.9" ]
-then npm i -g npm@6.14.9
-fi
-
-npm outdated | grep "MISSING"
-if [ $? -eq 0 ]
-then npm i
-fi
-
-node .
\ No newline at end of file
diff --git a/util/dist/cmds.js b/util/dist/cmds.js
index 4cc4e83..f375b89 100644
--- a/util/dist/cmds.js
+++ b/util/dist/cmds.js
@@ -2,7 +2,6 @@ const { readdirSync } = require("fs");
const ms = require("ms");
function cmds() {
let categories = [];
-
readdirSync("./commands").forEach(dir => {
const dirs = readdirSync(`./commands/${dir}`).filter(file =>
file.endsWith(".js")
@@ -26,6 +25,7 @@ function cmds() {
UserPermission: file.UserPerm
? file.UserPerm
: "No required user permission",
+ status: file.status ? file.status : true,
});
});
let data = {
diff --git a/util/dist/err.js b/util/dist/err.js
index 35f88b7..134b0a8 100644
--- a/util/dist/err.js
+++ b/util/dist/err.js
@@ -174,6 +174,12 @@ module.exports = async (message, dir, file, err) => {
case 53:
err = "Missing 'Code' argument";
break;
+ case 54:
+ err = "'Text' argument must be less than or equal to 2000";
+ break;
+ case 55:
+ err = "Different channel between user and client";
+ break;
case 404:
err = "Error 404 - Not Found";
break;
diff --git a/util/dist/manager.js b/util/dist/manager.js
new file mode 100644
index 0000000..6631de2
--- /dev/null
+++ b/util/dist/manager.js
@@ -0,0 +1,86 @@
+const { Manager } = require("erela.js");
+const Spotify = require("erela.js-spotify");
+const { MessageEmbed } = require("discord.js");
+module.exports = async client => {
+ try {
+ const id = process.env.SPOTIFY_ID;
+ const secret = process.env.SPOTIFY_SECRET;
+ client.manager = new Manager({
+ plugins: [
+ new Spotify({
+ clientID: id,
+ clientSecret: secret,
+ }),
+ ],
+ nodes: [
+ {
+ host: process.env.host,
+ port: 80,
+ password: process.env.password,
+ retryDelay: 5000,
+ },
+ ],
+ autoPlay: true,
+ send: (id, payload) => {
+ const guild = client.guilds.cache.get(id);
+ if (guild) guild.shard.send(payload);
+ },
+ })
+ .on("nodeConnect", node =>
+ console.log(`Node "${node.options.identifier}" has connected.`)
+ )
+ .on("nodeError", (node, error) =>
+ console.log(
+ `Node "${node.options.identifier}" encountered an error: ${error.message}.`
+ )
+ )
+ .on("trackStart", (player, track) => {
+ const channel = client.channels.cache.get(player.textChannel);
+ const embed = new MessageEmbed()
+ .setColor("02023a")
+ .setAuthor(
+ `Now Playing`,
+ client.user.displayAvatarURL({
+ dynamic: true,
+ })
+ )
+ .setFooter(`Made by ${client.author}`)
+ .setTimestamp()
+ .setDescription(`[${track.title}](${track.uri})`)
+ .addField(`Requested By : `, `${track.requester}`, true);
+ channel.send(embed);
+ })
+ .on("trackStuck", (player, track) => {
+ const channel = client.channels.cache.get(player.textChannel);
+ const embed = new MessageEmbed()
+ .setColor("02023a")
+ .setAuthor(
+ `Track Stuck`,
+ client.user.displayAvatarURL({
+ dynamic: true,
+ })
+ )
+ .setDescription(`${track.title}`)
+ .setFooter(`Made by ${client.author}`)
+ .setTimestamp();
+ channel.send(embed);
+ })
+ .on("queueEnd", player => {
+ const channel = client.channels.cache.get(player.textChannel);
+ const embed2 = new MessageEmbed()
+ .setColor("02023a")
+ .setAuthor(
+ `Queue has ended`,
+ client.user.displayAvatarURL({
+ dynamic: true,
+ })
+ )
+ .setFooter(`Made by ${client.author}`)
+ .setTimestamp();
+ channel.send(embed2);
+ player.destroy();
+ });
+ } catch (e) {
+ console.log(e);
+ }
+};
diff --git a/util/functions/economy.js b/util/functions/economy.js
new file mode 100644
index 0000000..3143899
--- /dev/null
+++ b/util/functions/economy.js
@@ -0,0 +1,243 @@
+module.exports = async (client, message) => {
+ const econ = require("../../models/econ");
+ const user = require("../../models/users");
+ client.createUser = id => {
+ user.findOne({ User: id }, (err, data) => {
+ new user({
+ User: id,
+ }).save();
+ });
+ };
+ client.createProfile = id => {
+ econ.findOne({ User: id }, (err, data) => {
+ new econ({
+ User: id,
+ }).save();
+ });
+ };
+ client.multi = message =>
+ new Promise(async ful => {
+ var multiplier = 0;
+ const b = await user.findOne({ User: message.author.id });
+ if (!b) {
+ client.createUser(message.author.id);
+ }
+ if (b.Tier == 3) {
+ multiplier += 0.1;
+ }
+ if (b.Tier == 2) {
+ multiplier += 0.15;
+ }
+ if (b.Tier == 1) {
+ multiplier += 0.2;
+ }
+ if (client.path.includes(message.guild.id)) {
+ multiplier += 0.15;
+ }
+ if (
+ [
+ "🐱",
+ "😾",
+ "😿",
+ "😽",
+ "🙀",
+ "😼",
+ "😻",
+ "😹",
+ "😸",
+ "😺",
+ "cathexe",
+ "cath",
+ ]
+ .map(x => (message.channel.name.includes(x) ? 1 : 0))
+ .filter(x => x).length
+ ) {
+ multiplier += 0.1;
+ }
+ if (b.Premium === true) {
+ multiplier += 0.25;
+ }
+ ful(Math.round(multiplier * 10));
+ });
+
+ client.bal = id =>
+ new Promise(async ful => {
+ const data = await econ.findOne({ User: id });
+ if (!data) {
+ client.createProfile(id);
+ }
+ ful(data.CP);
+ });
+
+ client.add = (id, amount, message) => {
+ econ.findOne({ User: id }, async (err, data) => {
+ var multi = 0;
+ if (err) throw err;
+ if (data) {
+ const users = require("../../models/users");
+ users.findOne({ User: id }, (err, b) => {
+ if (!b) {
+ client.createUser(id);
+ }
+ if (b.Tier == 3) {
+ multi += 0.1;
+ }
+ if (b.Tier == 2) {
+ multi += 0.15;
+ }
+ if (b.Tier === 1) {
+ multi += 0.2;
+ }
+ if (client.path.includes(message.guild.id)) {
+ multi += 0.15;
+ }
+ if (
+ [
+ "🐱",
+ "😾",
+ "😿",
+ "😽",
+ "🙀",
+ "😼",
+ "😻",
+ "😹",
+ "😸",
+ "😺",
+ "cathexe",
+ "cath",
+ ]
+ .map(x => (message.channel.name.includes(x) ? 1 : 0))
+ .filter(x => x).length
+ ) {
+ multi += 0.1;
+ }
+ if (b.Premium === true) {
+ multi += 0.25;
+ }
+ if (multi === 0) {
+ data.CP += amount;
+ data.save();
+ } else {
+ data.CP += Math.round(amount * multi + amount);
+ data.save();
+ }
+ });
+ } else {
+ client.createProfile(id);
+ }
+ });
+ };
+ client.rmv = (id, amount) => {
+ econ.findOne({ User: id }, async (err, data) => {
+ if (err) throw err;
+ if (data) {
+ data.CP -= amount;
+ data.save();
+ } else {
+ client.createProfile(id);
+ }
+ });
+ };
+ client.addItem = (id, item, amount) => {
+ const economy = require("../../models/inventory");
+ economy.findOne({ User: id }, (err, data) => {
+ if (!data) {
+ client.createProfile(id);
+ } else {
+ data[item] += amount;
+ data.save();
+ }
+ });
+ };
+ client.removeItem = (id, item, amount) => {
+ const inventory = require("../../models/inventory");
+ inventory.findOne({ User: id }, (err, data) => {
+ if (!data) {
+ client.createProfile(id);
+ } else {
+ data[item] -= amount;
+ data.save();
+ }
+ });
+ };
+ client.addcmdsused = id => {
+ user.findOne({ User: id }, async (err, data) => {
+ if (err) console.log(err);
+ if (data) {
+ data.CommandUsed++;
+ data.save();
+ } else {
+ client.createUser(id);
+ }
+ });
+ };
+
+ client.ADDBJWin = id => {
+ econ.findOne({ User: id }, async (err, data) => {
+ if (err) throw err;
+ if (data) {
+ data.BJWins++;
+ data.save();
+ } else {
+ client.createProfile(id);
+ }
+ });
+ };
+ client.ADDSWin = id => {
+ econ.findOne({ User: id }, async (err, data) => {
+ if (err) throw err;
+ if (data) {
+ data.SlotsWins++;
+ data.save();
+ } else {
+ client.createProfile(id);
+ }
+ });
+ };
+ client.ADDBWin = id => {
+ econ.findOne({ User: id }, async (err, data) => {
+ if (err) throw err;
+ if (data) {
+ data.BetWins++;
+ data.save();
+ } else {
+ client.createProfile(id);
+ }
+ });
+ };
+ client.cmdsUSED = id =>
+ new Promise(async ful => {
+ const data = await user.findOne({ User: id });
+ if (!data) {
+ client.createProfile(id);
+ }
+ ful(data.CommandUsed);
+ });
+
+ client.bjWin = id =>
+ new Promise(async ful => {
+ const data = await econ.findOne({ User: id });
+ if (!data) {
+ client.createProfile(id);
+ }
+ ful(data.BJWins);
+ });
+
+ client.sWin = id =>
+ new Promise(async ful => {
+ const data = await econ.findOne({ User: id });
+ if (!data) {
+ client.createProfile(id);
+ }
+ ful(data.SlotsWins);
+ });
+
+ client.bWin = id =>
+ new Promise(async ful => {
+ const data = await econ.findOne({ User: id });
+ if (!data) {
+ client.createProfile(id);
+ }
+ ful(data.BetWins);
+ });
+};
diff --git a/util/functions/function.js b/util/functions/function.js
index 48eadbe..93dfd2a 100644
--- a/util/functions/function.js
+++ b/util/functions/function.js
@@ -5,4 +5,45 @@ function random() {
const num = Math.floor(Math.random() * 2);
return num === 1;
}
-module.exports = { rndint, random };
+function timer(timestamp) {
+ const timeLeft = timestamp;
+ const days = Math.floor(timeLeft / 86400000);
+ const hours = Math.floor(timeLeft / 3600000) - days * 24;
+ const minutes = Math.floor(timeLeft / 60000) - days * 1440 - hours * 60;
+ const seconds =
+ Math.floor(timeLeft / 1000) - days * 86400 - hours * 3600 - minutes * 60;
+ const mseconds = timeLeft / 1000 - days * 86400 - hours * 3600 - minutes * 60;
+ let string = "";
+ if (days) string = string + `${days} ${days == 1 ? "day " : "days "}`;
+ if (hours) string = string + `${hours} ${hours == 1 ? "hour " : "hours "}`;
+ if (minutes)
+ string = string + `${minutes} ${minutes == 1 ? "minute " : "minutes "}`;
+ if (seconds)
+ string = string + `${seconds} ${seconds == 1 ? "second " : "seconds "}`;
+ if (!string.length) string = `${mseconds.toFixed(1)} second`;
+ return string;
+}
+function sleep(ms) {
+ let start = new Date().getTime();
+ let end = start;
+ while (end < start + ms) {
+ end = new Date().getTime();
+ }
+}
+function toHHMMSS(str) {
+ var sec_num = parseInt(str, 10);
+ var hours = Math.floor(sec_num / 3600);
+ var minutes = Math.floor((sec_num - hours * 3600) / 60);
+ var seconds = sec_num - hours * 3600 - minutes * 60;
+ if (hours < 10) {
+ hours = "0" + hours;
+ }
+ if (minutes < 10) {
+ minutes = "0" + minutes;
+ }
+ if (seconds < 10) {
+ seconds = "0" + seconds;
+ }
+ return hours + ":" + minutes + ":" + seconds;
+}
+module.exports = { rndint, random, timer, sleep, toHHMMSS };
diff --git a/util/functions/mongoose.js b/util/functions/mongoose.js
index cd4bb42..53b13d1 100644
--- a/util/functions/mongoose.js
+++ b/util/functions/mongoose.js
@@ -6,8 +6,8 @@ const cachegoose = new GooseCache(mongoose, {
mongoose.set("useFindAndModify", false);
const u = require("../../models/users");
const g = require("../../models/guilds");
+const m = require("../../models/bot");
const e = require("../../models/econ");
-const m = require("../../models/status");
module.exports = {
/**
* @param {String} URI - Mongo Connection URI
@@ -36,6 +36,7 @@ module.exports = {
Premium,
Category,
Commands,
+ Level,
} = gg;
await gg.save().catch(error => console.log(error));
return {
@@ -47,6 +48,7 @@ module.exports = {
Premium,
Category,
Commands,
+ Level,
};
} else {
const Guild = guild.Guild;
@@ -57,6 +59,7 @@ module.exports = {
const Premium = guild.Premium;
const Category = guild.Category;
const Commands = guild.Commands;
+ const Level = guild.Level;
return {
Guild,
Prefix,
@@ -66,6 +69,7 @@ module.exports = {
Premium,
Category,
Commands,
+ Level,
};
}
},
@@ -86,6 +90,7 @@ module.exports = {
Blacklist,
Blacklist_Reason,
PremiumServers,
+ CommandUsed,
} = ss;
await ss.save().catch(error => console.log(error));
return {
@@ -97,6 +102,7 @@ module.exports = {
Blacklist,
Blacklist_Reason,
PremiumServers,
+ CommandUsed,
};
} else {
const User = user.User;
@@ -107,6 +113,7 @@ module.exports = {
const Blacklist = user.Blacklist;
const Blacklist_Reason = user.Blacklist_Reason;
const PremiumServers = user.PremiumServers;
+ const CommandUsed = user.CommandUsed;
return {
User,
AFK,
@@ -116,6 +123,39 @@ module.exports = {
Blacklist,
Blacklist_Reason,
PremiumServers,
+ CommandUsed,
+ };
+ }
+ },
+ /**
+ * @param {String} ID - User ID
+ */
+ async getUserEcon(ID) {
+ if (!ID) throw new Error("User ID?");
+ const user = await u.findOne({ User: ID }).lean().cache(120);
+ if (!user) {
+ const ss = new u({ User: ID });
+ const { User, CP, BJWins, SlotsWins, BetWins } = ss;
+ await ss.save().catch(error => console.log(error));
+ return {
+ User,
+ CP,
+ BJWins,
+ SlotsWins,
+ BetWins,
+ };
+ } else {
+ const User = user.User;
+ const CP = user.CP;
+ const BJWins = user.BJWins;
+ const SlotsWins = user.SlotsWins;
+ const BetWins = user.BetWins;
+ return {
+ User,
+ CP,
+ BJWins,
+ SlotsWins,
+ BetWins,
};
}
},
@@ -441,54 +481,6 @@ module.exports = {
cachegoose.clearCache();
return true;
},
- // /**
- // * @param {String} ID - User ID
- // */
- // async bal(ID) {
- // new Promise(async ful => {
- // const data = await e.findOne({ User: ID });
- // if (!data) return ful(0);
- // ful(data.CP);
- // });
- // },
- /**
- * @param {String} ID - User ID
- */
- async bal(ID) {
- const data = await e.findOne({ User: ID });
- if (!data) return 0;
- else return data.CP;
- },
- /**
- * @param {String} ID - User ID
- * @param {Number} CP - Number
- */
- async add(ID, CP) {
- e.findOne({ User: ID }, async (err, data) => {
- if (err) throw err;
- if (data) {
- data.CP += CP;
- } else {
- data = new e({ User: ID, CP });
- }
- await data.save();
- });
- },
- /**
- * @param {String} ID - User ID
- * @param {Number} CP - Number
- */
- async rmv(ID, CP) {
- e.findOne({ User: ID }, async (err, data) => {
- if (err) throw err;
- if (data) {
- data.CP -= CP;
- } else {
- data = new e({ User: ID, CP: -CP });
- }
- await data.save();
- });
- },
/**
* @param {String} ID - Bot ID
* @param {String} Toggle - Maintenance Toggle
@@ -500,9 +492,9 @@ module.exports = {
if (!idk) {
const newdb = new m({ Bot: ID });
if (Toggle === "true") {
- newdb.Status === "true";
+ newdb.Status = "true";
} else {
- newdb.Status === "false";
+ newdb.Status = "false";
}
await newdb.save().catch(error => console.log(error));
return;
@@ -517,4 +509,94 @@ module.exports = {
cachegoose.clearCache();
return;
},
+ /**
+ * @param {String} ID - Bot ID
+ * @param {String} Guilds - Guilds Number
+ * @param {String} Users - Users Number
+ */
+ async botcache(ID, Guild, User) {
+ if (!ID) throw new Error("Please Provide a ID!");
+ if (!Guild) throw new Error("Please Provide a Guild Number!");
+ if (!User) throw new Error("Please Provide a User Number!");
+ const idk = await m.findOne({ Bot: ID });
+ if (!idk) {
+ const newdb = new m({ Bot: ID });
+ if (Guild && User) {
+ newdb.Guilds = Guild;
+ newdb.Users = User;
+ } else {
+ newdb.Guilds = Guild;
+ newdb.Users = User;
+ }
+ await newdb.save().catch(error => console.log(error));
+ return;
+ } else {
+ if (Guild && User) {
+ idk.Guilds = Guild;
+ idk.Users = User;
+ } else {
+ idk.Guilds = Guild;
+ idk.Users = User;
+ }
+ }
+ await idk.save().catch(error => console.log(error));
+ cachegoose.clearCache();
+ return;
+ },
+ /**
+ * @param {String} ID - Bot ID
+ * @param {String} Commands - Commands
+ */
+ async commands(ID, Cmds) {
+ if (!ID) throw new Error("Please Provide a ID!");
+ if (!Cmds) throw new Error("Please Provide Commands!");
+ const idk = await m.findOne({ Bot: ID });
+ if (!idk) {
+ const newdb = new m({ Bot: ID });
+ if (Cmds) {
+ newdb.Commands = Cmds;
+ } else {
+ newdb.Commands = Cmds;
+ }
+ await newdb.save().catch(error => console.log(error));
+ return;
+ } else {
+ if (Cmds) {
+ idk.Commands = Cmds;
+ } else {
+ idk.Commands = Cmds;
+ }
+ }
+ await idk.save().catch(error => console.log(error));
+ cachegoose.clearCache();
+ return;
+ },
+ /**
+ * @param {String} ID - Guild ID
+ * @param {String} Toggle - Level Toggle
+ */
+ async setGLevel(ID, Toggle) {
+ if (!ID) throw new Error("Please Provide a Guild ID");
+ if (!Toggle) throw new Error("Please Provide a Toggle!");
+ const guild = await g.findOne({ Guild: ID });
+ if (!guild) {
+ const newU = new g({ Guild: ID });
+ if (Toggle == "true") {
+ guild.Level = true;
+ } else {
+ guild.Level = false;
+ }
+ await newU.save().catch(error => console.log(error));
+ return;
+ } else {
+ if (Toggle == "true") {
+ guild.Level = true;
+ } else {
+ guild.Level = false;
+ }
+ }
+ await guild.save().catch(error => console.log(error));
+ cachegoose.clearCache();
+ return;
+ },
};