diff --git a/.gitignore b/.gitignore
index 7e73524e..d290494d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -20,8 +20,10 @@
.vscode
# Node
-package-lock.json
node_modules
# SQlite
/json.sqlite
+
+# Sessions Store
+sessions
\ No newline at end of file
diff --git a/base/Guild.js b/base/Guild.js
index 27c01504..b72f1083 100644
--- a/base/Guild.js
+++ b/base/Guild.js
@@ -34,10 +34,9 @@ module.exports = mongoose.model("Guild", new Schema({
kick: false,
ban: false,
},
- news: false,
suggestions: false,
- modlogs: false,
- birthdays: false,
reports: false,
+ birthdays: false,
+ modlogs: false,
} },
}));
\ No newline at end of file
diff --git a/base/JaBa.js b/base/JaBa.js
index 862d1ab4..7f8086a2 100644
--- a/base/JaBa.js
+++ b/base/JaBa.js
@@ -32,7 +32,6 @@ class JaBa extends Client {
this.databaseCache.guilds = new Collection();
this.databaseCache.members = new Collection();
this.databaseCache.usersReminds = new Collection();
- this.databaseCache.mutedUsers = new Collection();
this.player = Player.singleton(this, {
autoRegisterExtractor: false,
diff --git a/commands/Administration/automod.js b/commands/Administration/automod.js
index 03b53b51..1ebe7b88 100644
--- a/commands/Administration/automod.js
+++ b/commands/Administration/automod.js
@@ -64,7 +64,7 @@ class Automod extends BaseCommand {
return interaction.success("administration/automod:ENABLED");
} else {
if (channel) {
- data.guildData.plugins.automod.ignored.push(channel);
+ data.guildData.plugins.automod.ignored.push(channel.id);
data.guildData.markModified("plugins.automod");
await data.guildData.save();
diff --git a/commands/Administration/config.js b/commands/Administration/config.js
index 7097f46a..854b92fa 100644
--- a/commands/Administration/config.js
+++ b/commands/Administration/config.js
@@ -39,7 +39,6 @@ class Config extends BaseCommand {
.setChoices(
{ name: client.translate("administration/config:BIRTHDAYS"), value: "birthdays" },
{ name: client.translate("administration/config:MODLOGS"), value: "modlogs" },
- { name: client.translate("administration/config:NEWS"), value: "news" },
{ name: client.translate("administration/config:REPORTS"), value: "reports" },
{ name: client.translate("administration/config:SUGGESTIONS"), value: "suggestions" },
)
@@ -129,12 +128,9 @@ class Config extends BaseCommand {
},
{
name: interaction.translate("administration/config:SPECIAL_CHANNELS"),
- value: interaction.translate("administration/config:NEWS_LIST", {
- channel: guildData.plugins.news ? `<#${guildData.plugins.news}>` : `*${interaction.translate("common:NOT_DEFINED")}*`,
+ value: interaction.translate("administration/config:SUGGESTIONS_LIST", {
+ channel: guildData.plugins.suggestions ? `<#${guildData.plugins.suggestions}>` : `*${interaction.translate("common:NOT_DEFINED")}*`,
}) + "\n" +
- interaction.translate("administration/config:SUGGESTIONS_LIST", {
- channel: guildData.plugins.suggestions ? `<#${guildData.plugins.suggestions}>` : `*${interaction.translate("common:NOT_DEFINED")}*`,
- }) + "\n" +
interaction.translate("administration/config:REPORTS_LIST", {
channel: guildData.plugins.reports ? `<#${guildData.plugins.reports}>` : `*${interaction.translate("common:NOT_DEFINED")}*`,
}) + "\n" +
@@ -145,10 +141,10 @@ class Config extends BaseCommand {
channel: guildData.plugins.birthdays ? `<#${guildData.plugins.birthdays}>` : `*${interaction.translate("common:NOT_DEFINED")}*`,
}),
},
- // {
- // name: interaction.translate("administration/config:DASHBOARD_TITLE"),
- // value: `[${interaction.translate("administration/config:DASHBOARD_CONTENT")}](${client.config.dashboard.baseURL})`
- // }
+ {
+ name: interaction.translate("administration/config:DASHBOARD_TITLE"),
+ value: `[${interaction.translate("administration/config:DASHBOARD_CONTENT")}](${client.config.dashboard.domain})`,
+ },
]);
interaction.reply({
@@ -193,11 +189,10 @@ async function changeSetting(interaction, setting, state, channel) {
content: `${interaction.translate(`administration/config:${setting.toUpperCase()}`)}: **${interaction.translate("common:ENABLED")}** (${channel.toString()})`,
ephemeral: true,
});
- } else
- return interaction.reply({
- content: `${interaction.translate(`administration/config:${setting.toUpperCase()}`)}: ${interaction.guild.data.plugins[setting] ? `**${interaction.translate("common:ENABLED")}** (<#${interaction.guild.data.plugins[setting]}>)` : `**${interaction.translate("common:DISABLED")}**`}`,
- ephemeral: true,
- });
+ } else return interaction.reply({
+ content: `${interaction.translate(`administration/config:${setting.toUpperCase()}`)}: ${interaction.guild.data.plugins[setting] ? `**${interaction.translate("common:ENABLED")}** (<#${interaction.guild.data.plugins[setting]}>)` : `**${interaction.translate("common:DISABLED")}**`}`,
+ ephemeral: true,
+ });
}
}
diff --git a/commands/Economy/profile.js b/commands/Economy/profile.js
index f875cc5e..a65ee772 100644
--- a/commands/Economy/profile.js
+++ b/commands/Economy/profile.js
@@ -79,7 +79,7 @@ class Profile extends BaseCommand {
.addFields([
{
name: client.customEmojis.link + " " + interaction.translate("economy/profile:LINK"),
- value: `[${interaction.translate("economy/profile:LINK_TEXT")}](${client.config.dashboard.baseURL}/user/${member.user.id}/${interaction.guild.id})`,
+ value: `[${interaction.translate("economy/profile:LINK_TEXT")}](${client.config.dashboard.domain}/user/${member.user.id}/${interaction.guild.id})`,
},
{
name: interaction.translate("economy/profile:BIO"),
diff --git a/commands/General/serverinfo.js b/commands/General/serverinfo.js
index 23680a06..35a7f051 100644
--- a/commands/General/serverinfo.js
+++ b/commands/General/serverinfo.js
@@ -49,7 +49,7 @@ class Serverinfo extends BaseCommand {
.addFields([
{
name: client.customEmojis.link + " " + interaction.translate("general/serverinfo:LINK"),
- value: `[${interaction.translate("general/serverinfo:LINK_TEXT")}](${client.config.dashboard.baseURL}/stats/${guild.id})`,
+ value: `[${interaction.translate("general/serverinfo:LINK_TEXT")}](${client.config.dashboard.domain}/stats/${guild.id})`,
},
{
name: client.customEmojis.title + interaction.translate("common:NAME"),
diff --git a/commands/General/stats.js b/commands/General/stats.js
index b5840859..8bc3dbca 100644
--- a/commands/General/stats.js
+++ b/commands/General/stats.js
@@ -90,7 +90,7 @@ class Stats extends BaseCommand {
{
name: client.customEmojis.link + " " + interaction.translate("general/stats:LINKS_TITLE"),
value: interaction.translate("misc:STATS_FOOTER", {
- dashboardLink: client.config.dashboard.baseURL,
+ dashboardLink: client.config.dashboard.domain,
supportLink: "https://discord.gg/Ptkj2n9nzZ",
inviteLink: client.generateInvite({ scopes: ["bot", "applications.commands"], permissions: [ PermissionsBitField.Flags.Administrator ] }),
donateLink: "https://www.donationalerts.com/r/jonny_bro",
diff --git a/commands/Moderation/warn.js b/commands/Moderation/warn.js
index cb1082a5..4d13ad0b 100644
--- a/commands/Moderation/warn.js
+++ b/commands/Moderation/warn.js
@@ -74,9 +74,9 @@ class Warn extends BaseCommand {
if (submitted) {
const reason = submitted.fields.getTextInputValue("warn_reason");
- const sanctions = memberData.sanctions.filter(s => s.type === "warn").length;
- const banCount = data.guildData.plugins.warnsSanctions.ban;
- const kickCount = data.guildData.plugins.warnsSanctions.kick;
+ // const sanctions = memberData.sanctions.filter(s => s.type === "warn").length;
+ // const banCount = data.guildData.plugins.warnsSanctions.ban;
+ // const kickCount = data.guildData.plugins.warnsSanctions.kick;
const caseInfo = {
moderator: interaction.member.id,
@@ -101,7 +101,7 @@ class Warn extends BaseCommand {
inline: true,
},
]);
-
+ /*
if (banCount) {
if (sanctions >= banCount) {
member.send({
@@ -122,6 +122,7 @@ class Warn extends BaseCommand {
.setColor(client.config.embed.color);
interaction.guild.members.ban(member).catch(() => {});
+
interaction.followUp({
content: interaction.translate("moderation/setwarns:AUTO_BAN", {
user: member.user.discriminator === "0" ? member.user.username : member.user.tag,
@@ -151,6 +152,7 @@ class Warn extends BaseCommand {
.setColor(client.config.embed.color);
member.kick().catch(() => {});
+
interaction.followUp({
content: interaction.translate("moderation/setwarns:AUTO_KICK", {
user: member.user.discriminator === "0" ? member.user.username : member.user.tag,
@@ -159,7 +161,7 @@ class Warn extends BaseCommand {
});
}
}
-
+ */
member.send({
content: interaction.translate("moderation/warn:WARNED_DM", {
user: member.user.discriminator === "0" ? member.user.username : member.user.tag,
diff --git a/commands/Owner/announcement.js b/commands/Owner/announcement.js
deleted file mode 100644
index b1edd79c..00000000
--- a/commands/Owner/announcement.js
+++ /dev/null
@@ -1,93 +0,0 @@
-const { SlashCommandBuilder, EmbedBuilder, ChannelType } = require("discord.js");
-const BaseCommand = require("../../base/BaseCommand");
-
-class Announcement extends BaseCommand {
- /**
- *
- * @param {import("../base/JaBa")} client
- */
- constructor(client) {
- super({
- command: new SlashCommandBuilder()
- .setName("announcement")
- .setDescription(client.translate("owner/announcement:DESCRIPTION"))
- .setDescriptionLocalizations({
- "uk": client.translate("owner/announcement:DESCRIPTION", null, "uk-UA"),
- "ru": client.translate("owner/announcement:DESCRIPTION", null, "ru-RU"),
- })
- .setDMPermission(true)
- .addStringOption(option => option.setName("message")
- .setDescription(client.translate("common:MESSAGE"))
- .setDescriptionLocalizations({
- "uk": client.translate("common:MESSAGE", null, "uk-UA"),
- "ru": client.translate("common:MESSAGE", null, "ru-RU"),
- })
- .setRequired(true))
- .addBooleanOption(option => option.setName("tag")
- .setDescription(client.translate("owner/announcement:TAG"))
- .setDescriptionLocalizations({
- "uk": client.translate("owner/announcement:TAG", null, "uk-UA"),
- "ru": client.translate("owner/announcement:TAG", null, "ru-RU"),
- })
- .setRequired(true))
- .addBooleanOption(option => option.setName("important")
- .setDescription(client.translate("owner/announcement:IMPORTANT"))
- .setDescriptionLocalizations({
- "uk": client.translate("owner/announcement:IMPORTANT", null, "uk-UA"),
- "ru": client.translate("owner/announcement:IMPORTANT", null, "ru-RU"),
- })),
- aliases: [],
- dirname: __dirname,
- ownerOnly: true,
- });
- }
- /**
- *
- * @param {import("../../base/JaBa")} client
- */
- async onLoad() {
- //...
- }
- /**
- *
- * @param {import("../../base/JaBa")} client
- * @param {import("discord.js").ChatInputCommandInteraction} interaction
- * @param {Object} data
- */
- async execute(client, interaction) {
- await interaction.deferReply({ ephemeral: true });
- const text = interaction.options.getString("message"),
- important = interaction.options.getBoolean("important");
- if (text.length > 1000) return interaction.error("owner/announcement:TOO_LONG");
-
- const embed = new EmbedBuilder()
- .setAuthor({
- name: interaction.translate("owner/announcement:TITLE"),
- })
- .setDescription(text)
- .setColor(client.config.embed.color)
- .setFooter({
- text: interaction.user.discriminator === "0" ? interaction.user.username : interaction.user.tag,
- })
- .setTimestamp();
-
- (await client.guilds.fetch()).forEach(async guild => {
- if (guild.id === "568120814776614924") return;
-
- guild = await guild.fetch();
- const channel = important ? (guild?.data?.plugins.news ? guild.channels.cache.get(guild?.data?.plugins.news) : guild.channels.cache.find(c => c.type === ChannelType.GuildText)) : guild.channels.cache.get(guild?.data?.plugins.news);
-
- channel.send({
- content: `${interaction.options.getBoolean("tag") ? "||@everyone|| " : ""}ВАЖНОЕ ОБЪЯВЛЕНИЕ!`,
- embeds: [embed],
- });
- });
-
- interaction.editReply({
- content: interaction.translate("owner/announcement:SENDED"),
- ephemeral: true,
- });
- }
-}
-
-module.exports = Announcement;
\ No newline at end of file
diff --git a/dashboard/dashboard.js b/dashboard/dashboard.js
index d8f52325..6b873630 100644
--- a/dashboard/dashboard.js
+++ b/dashboard/dashboard.js
@@ -1,7 +1,9 @@
const SoftUI = require("./dashboard-core/theme/dbd-soft-ui"),
- DBD = require("./dashboard-core/index");
+ DBD = require("./dashboard-core/index"),
+ session = require("express-session"),
+ FileStore = require("session-file-store")(session);
-const { PermissionsBitField } = require("discord.js");
+const { PermissionsBitField, ChannelType } = require("discord.js");
/**
*
@@ -43,10 +45,11 @@ module.exports.load = async client => {
secret: client.config.dashboard.secret,
},
cookiesSecret: client.config.dashboard.secret,
+ sessionSaveSession: new FileStore,
domain: client.config.dashboard.domain,
redirectUri: `${client.config.dashboard.domain}${client.config.dashboard.port !== 80 ? `:${client.config.dashboard.port}` : ""}/discord/callback`,
bot: client,
- ownerIDs: [ client.config.owner ],
+ ownerIDs: [ client.config.owner.id ],
requiredPermissions: PermissionsBitField.Flags.ViewChannel,
minimizedConsoleLogs: true,
invite: {
@@ -190,9 +193,9 @@ module.exports.load = async client => {
},
commands: categories,
locales: {
- enUS: require("../languages/en-US/dashboard.json").DASHBOARD,
- ruRU: require("../languages/ru-RU/dashboard.json").DASHBOARD,
- ukUA: require("../languages/uk-UA/dashboard.json").DASHBOARD,
+ enUS: require("../languages/en-US/dashboard.json"),
+ ruRU: require("../languages/ru-RU/dashboard.json"),
+ ukUA: require("../languages/uk-UA/dashboard.json"),
},
}),
customPages: [
@@ -221,7 +224,7 @@ module.exports.load = async client => {
id: guild.id,
});
- return guildData.language || client.defaultLanguage;
+ return guildData.language;
},
setNew: async ({ guild, newData }) => {
const guildData = await client.findOrCreateGuild({
@@ -235,9 +238,407 @@ module.exports.load = async client => {
},
},
{
- optionType: SoftUI.formTypes.spacer(),
- title: "Plugins settings",
- description: "",
+ optionId: "welcome",
+ optionName: "Welcome Message",
+ optionDescription: "Setup welcome message on the server",
+ optionType: SoftUI.formTypes.multiRow([
+ {
+ optionId: "welcome_enable",
+ optionName: "Enabled",
+ optionDescription: "Toggle welcome messages sending",
+ optionType: DBD.formTypes.switch(),
+ getActualSet: async ({ guild }) => {
+ const guildData = await client.findOrCreateGuild({
+ id: guild.id,
+ });
+
+ return guildData.plugins.welcome.enabled;
+ },
+ setNew: async ({ guild, newData }) => {
+ const guildData = await client.findOrCreateGuild({
+ id: guild.id,
+ });
+
+ guildData.plugins.welcome.enabled = newData;
+ await guildData.save();
+
+ return;
+ },
+ },
+ {
+ optionId: "welcome_image",
+ optionName: "Add Image",
+ optionDescription: "Toggle sending an image with welcome message",
+ optionType: DBD.formTypes.switch(),
+ getActualSet: async ({ guild }) => {
+ const guildData = await client.findOrCreateGuild({
+ id: guild.id,
+ });
+
+ return guildData.plugins.welcome.withImage;
+ },
+ setNew: async ({ guild, newData }) => {
+ const guildData = await client.findOrCreateGuild({
+ id: guild.id,
+ });
+
+ guildData.plugins.welcome.withImage = newData;
+ await guildData.save();
+
+ return;
+ },
+ },
+ {
+ optionId: "welcome_message",
+ optionName: "Message",
+ optionDescription: "Change welcome message (You can use {user}, {server} and {membercount} wildcards)",
+ optionType: DBD.formTypes.input("Welcome, {user}!", 2, 100, false, false),
+ getActualSet: async ({ guild }) => {
+ const guildData = await client.findOrCreateGuild({
+ id: guild.id,
+ });
+
+ return guildData.plugins.welcome.message;
+ },
+ setNew: async ({ guild, newData }) => {
+ const guildData = await client.findOrCreateGuild({
+ id: guild.id,
+ });
+
+ guildData.plugins.welcome.message = newData !== "" ? newData : null;
+ await guildData.save();
+
+ return;
+ },
+ },
+ {
+ optionId: "welcome_channel",
+ optionName: "Channel",
+ optionDescription: "Select a channel for welcome messages",
+ optionType: DBD.formTypes.channelsSelect(false, [ ChannelType.GuildText ]),
+ getActualSet: async ({ guild }) => {
+ const guildData = await client.findOrCreateGuild({
+ id: guild.id,
+ });
+
+ return guildData.plugins.welcome.channel;
+ },
+ setNew: async ({ guild, newData }) => {
+ const guildData = await client.findOrCreateGuild({
+ id: guild.id,
+ });
+
+ guildData.plugins.welcome.channel = newData !== "" ? newData : null;
+ await guildData.save();
+
+ return;
+ },
+ },
+ ]),
+ },
+ {
+ optionId: "goodbye",
+ optionName: "Goodbye Message",
+ optionDescription: "Setup goodbye message on the server",
+ optionType: SoftUI.formTypes.multiRow([
+ {
+ optionId: "goodbye_enable",
+ optionName: "Enabled",
+ optionDescription: "Toggle goodbye messages sending",
+ optionType: DBD.formTypes.switch(),
+ getActualSet: async ({ guild }) => {
+ const guildData = await client.findOrCreateGuild({
+ id: guild.id,
+ });
+
+ return guildData.plugins.goodbye.enabled;
+ },
+ setNew: async ({ guild, newData }) => {
+ const guildData = await client.findOrCreateGuild({
+ id: guild.id,
+ });
+
+ guildData.plugins.goodbye.enabled = newData;
+ await guildData.save();
+
+ return;
+ },
+ },
+ {
+ optionId: "goodbye_image",
+ optionName: "Add Image",
+ optionDescription: "Toggle sending an image with goodbye message",
+ optionType: DBD.formTypes.switch(),
+ getActualSet: async ({ guild }) => {
+ const guildData = await client.findOrCreateGuild({
+ id: guild.id,
+ });
+
+ return guildData.plugins.goodbye.withImage;
+ },
+ setNew: async ({ guild, newData }) => {
+ const guildData = await client.findOrCreateGuild({
+ id: guild.id,
+ });
+
+ guildData.plugins.goodbye.withImage = newData;
+ await guildData.save();
+
+ return;
+ },
+ },
+ {
+ optionId: "goodbye_message",
+ optionName: "Message",
+ optionDescription: "Change goodbye message (You can use {user}, {server} and {membercount} wildcards)",
+ optionType: DBD.formTypes.input("goodbye, {user}!", 2, 100, false, false),
+ getActualSet: async ({ guild }) => {
+ const guildData = await client.findOrCreateGuild({
+ id: guild.id,
+ });
+
+ return guildData.plugins.goodbye.message;
+ },
+ setNew: async ({ guild, newData }) => {
+ const guildData = await client.findOrCreateGuild({
+ id: guild.id,
+ });
+
+ guildData.plugins.goodbye.message = newData !== "" ? newData : null;
+ await guildData.save();
+
+ return;
+ },
+ },
+ {
+ optionId: "goodbye_channel",
+ optionName: "Channel",
+ optionDescription: "Select a channel for goodbye messages",
+ optionType: DBD.formTypes.channelsSelect(false, [ ChannelType.GuildText ]),
+ getActualSet: async ({ guild }) => {
+ const guildData = await client.findOrCreateGuild({
+ id: guild.id,
+ });
+
+ return guildData.plugins.goodbye.channel;
+ },
+ setNew: async ({ guild, newData }) => {
+ const guildData = await client.findOrCreateGuild({
+ id: guild.id,
+ });
+
+ guildData.plugins.goodbye.channel = newData !== "" ? newData : null;
+ await guildData.save();
+
+ return;
+ },
+ },
+ ]),
+ },
+ {
+ optionId: "autorole",
+ optionName: "Auto Role",
+ optionDescription: "Setup auto role on the server",
+ optionType: SoftUI.formTypes.multiRow([
+ {
+ optionId: "autorole_enable",
+ optionName: "Enabled",
+ optionDescription: "Toggle auto role granting for new members",
+ optionType: DBD.formTypes.switch(),
+ getActualSet: async ({ guild }) => {
+ const guildData = await client.findOrCreateGuild({
+ id: guild.id,
+ });
+
+ return guildData.plugins.autorole.enabled;
+ },
+ setNew: async ({ guild, newData }) => {
+ const guildData = await client.findOrCreateGuild({
+ id: guild.id,
+ });
+
+ guildData.plugins.autorole.enabled = newData;
+ await guildData.save();
+
+ return;
+ },
+ },
+ {
+ optionId: "autorole_role",
+ optionName: "Role",
+ optionDescription: "Select a role for auto role",
+ optionType: DBD.formTypes.rolesSelect(false, false, true),
+ getActualSet: async ({ guild }) => {
+ const guildData = await client.findOrCreateGuild({
+ id: guild.id,
+ });
+
+ return guildData.plugins.autorole.role;
+ },
+ setNew: async ({ guild, newData }) => {
+ const guildData = await client.findOrCreateGuild({
+ id: guild.id,
+ });
+
+ guildData.plugins.autorole.role = newData !== "" ? newData : null;
+ await guildData.save();
+
+ return;
+ },
+ },
+ ]),
+ },
+ {
+ optionId: "automod",
+ optionName: "Auto Mod",
+ optionDescription: "Setup auto mod on the server",
+ optionType: SoftUI.formTypes.multiRow([
+ {
+ optionId: "automod_enable",
+ optionName: "Enabled",
+ optionDescription: "Toggle auto mod granting for new members",
+ optionType: DBD.formTypes.switch(),
+ getActualSet: async ({ guild }) => {
+ const guildData = await client.findOrCreateGuild({
+ id: guild.id,
+ });
+
+ return guildData.plugins.automod.enabled;
+ },
+ setNew: async ({ guild, newData }) => {
+ const guildData = await client.findOrCreateGuild({
+ id: guild.id,
+ });
+
+ guildData.plugins.automod.enabled = newData;
+ await guildData.save();
+
+ return;
+ },
+ },
+ {
+ optionId: "automod_ignore",
+ optionName: "Ignore channels",
+ optionDescription: "Select channels for auto mod to ignore",
+ optionType: DBD.formTypes.channelsMultiSelect(false, false, [ ChannelType.GuildText ]),
+ getActualSet: async ({ guild }) => {
+ const guildData = await client.findOrCreateGuild({
+ id: guild.id,
+ });
+
+ return guildData.plugins.automod.ignored;
+ },
+ setNew: async ({ guild, newData }) => {
+ const guildData = await client.findOrCreateGuild({
+ id: guild.id,
+ });
+
+ guildData.plugins.automod.ignored = newData;
+ await guildData.save();
+
+ return;
+ },
+ },
+ ]),
+ },
+ {
+ optionId: "channels",
+ optionName: "Special Channels",
+ optionDescription: "Setup special channels on the server",
+ optionType: SoftUI.formTypes.multiRow([
+ {
+ optionId: "channels_suggestions",
+ optionName: "Suggestions channel",
+ optionDescription: "Select channel for suggestions to go to",
+ optionType: DBD.formTypes.channelsSelect(false, [ ChannelType.GuildText ]),
+ getActualSet: async ({ guild }) => {
+ const guildData = await client.findOrCreateGuild({
+ id: guild.id,
+ });
+
+ return guildData.plugins.suggestions;
+ },
+ setNew: async ({ guild, newData }) => {
+ const guildData = await client.findOrCreateGuild({
+ id: guild.id,
+ });
+
+ guildData.plugins.suggestions = newData;
+ await guildData.save();
+
+ return;
+ },
+ },
+ {
+ optionId: "channels_reports",
+ optionName: "Reports channel",
+ optionDescription: "Select channel for reports to go to",
+ optionType: DBD.formTypes.channelsSelect(false, [ ChannelType.GuildText ]),
+ getActualSet: async ({ guild }) => {
+ const guildData = await client.findOrCreateGuild({
+ id: guild.id,
+ });
+
+ return guildData.plugins.reports;
+ },
+ setNew: async ({ guild, newData }) => {
+ const guildData = await client.findOrCreateGuild({
+ id: guild.id,
+ });
+
+ guildData.plugins.reports = newData;
+ await guildData.save();
+
+ return;
+ },
+ },
+ {
+ optionId: "channels_birthdays",
+ optionName: "Birthdays channel",
+ optionDescription: "Select channel for birthdays message to go to",
+ optionType: DBD.formTypes.channelsSelect(false, [ ChannelType.GuildText ]),
+ getActualSet: async ({ guild }) => {
+ const guildData = await client.findOrCreateGuild({
+ id: guild.id,
+ });
+
+ return guildData.plugins.birthdays;
+ },
+ setNew: async ({ guild, newData }) => {
+ const guildData = await client.findOrCreateGuild({
+ id: guild.id,
+ });
+
+ guildData.plugins.birthdays = newData;
+ await guildData.save();
+
+ return;
+ },
+ },
+ {
+ optionId: "channels_modlogs",
+ optionName: "Moderation logs channel",
+ optionDescription: "Select channel for moderation logs to go to (warns)",
+ optionType: DBD.formTypes.channelsSelect(false, [ ChannelType.GuildText ]),
+ getActualSet: async ({ guild }) => {
+ const guildData = await client.findOrCreateGuild({
+ id: guild.id,
+ });
+
+ return guildData.plugins.modlogs;
+ },
+ setNew: async ({ guild, newData }) => {
+ const guildData = await client.findOrCreateGuild({
+ id: guild.id,
+ });
+
+ guildData.plugins.modlogs = newData;
+ await guildData.save();
+
+ return;
+ },
+ },
+ ]),
},
],
},
@@ -245,6 +646,7 @@ module.exports.load = async client => {
categoryId: "test",
categoryName: "test settings",
categoryDescription: "ooga booba",
+ categoryPermissions: PermissionsBitField.Flags.ViewChannel,
categoryOptionsList: [
{
optionType: SoftUI.formTypes.spacer(),
diff --git a/events/Guild/guildMemberAdd.js b/events/Guild/guildMemberAdd.js
index ed076fe6..d6990394 100644
--- a/events/Guild/guildMemberAdd.js
+++ b/events/Guild/guildMemberAdd.js
@@ -54,11 +54,13 @@ class GuildMemberAdd extends BaseEvent {
if (guildData.plugins.welcome.enabled) {
const channel = member.guild.channels.cache.get(guildData.plugins.welcome.channel);
+
if (channel) {
const message = guildData.plugins.welcome.message
.replace(/{user}/g, member)
.replace(/{server}/g, member.guild.name)
.replace(/{membercount}/g, member.guild.memberCount);
+
if (guildData.plugins.welcome.withImage) {
const canvas = Canvas.createCanvas(1024, 450),
ctx = canvas.getContext("2d");
@@ -128,17 +130,20 @@ class GuildMemberAdd extends BaseEvent {
ctx.stroke();
ctx.closePath();
ctx.clip();
+
const avatar = await Canvas.loadImage(member.displayAvatarURL({
extension: "jpg",
}));
ctx.drawImage(avatar, 45, 90, 270, 270);
const attachment = new AttachmentBuilder(canvas.toBuffer(), { name: "welcome-image.png" });
+
channel.send({
content: message,
files: [attachment],
});
- } else channel.send({ content: message });
+ } else
+ channel.send({ content: message });
}
}
}
diff --git a/events/Guild/guildMemberRemove.js b/events/Guild/guildMemberRemove.js
index b4fca0ff..823a1e2f 100644
--- a/events/Guild/guildMemberRemove.js
+++ b/events/Guild/guildMemberRemove.js
@@ -39,11 +39,13 @@ class GuildMemberRemove extends BaseEvent {
if (guildData.plugins.goodbye.enabled) {
const channel = member.guild.channels.cache.get(guildData.plugins.goodbye.channel);
+
if (channel) {
const message = guildData.plugins.goodbye.message
.replace(/{user}/g, member.user.discriminator === "0" ? member.user.username : member.user.tag)
.replace(/{server}/g, member.guild.name)
.replace(/{membercount}/g, member.guild.memberCount);
+
if (guildData.plugins.goodbye.withImage) {
const canvas = Canvas.createCanvas(1024, 450),
ctx = canvas.getContext("2d");
@@ -113,6 +115,7 @@ class GuildMemberRemove extends BaseEvent {
ctx.stroke();
ctx.closePath();
ctx.clip();
+
const avatar = await Canvas.loadImage(member.displayAvatarURL({
extension: "png",
size: 512,
@@ -120,11 +123,13 @@ class GuildMemberRemove extends BaseEvent {
ctx.drawImage(avatar, 45, 90, 270, 270);
const attachment = new AttachmentBuilder(canvas.toBuffer(), { name: "goodbye-image.png" });
+
channel.send({
content: message,
files: [attachment],
});
- } else channel.send({ content: message });
+ } else
+ channel.send({ content: message });
}
}
}
diff --git a/events/MessageHandler.js b/events/MessageHandler.js
index 19aa9bb5..af0f985d 100644
--- a/events/MessageHandler.js
+++ b/events/MessageHandler.js
@@ -106,7 +106,7 @@ class MessageCreate extends BaseEvent {
if (data.guildData.plugins.automod.enabled && !data.guildData.plugins.automod.ignored.includes(message.channel.id))
if (/(discord\.(gg|io|me|li)\/.+|discordapp\.com\/invite\/.+)/i.test(message.content))
if (!message.channel.permissionsFor(message.member).has(PermissionsBitField.Flags.ManageMessages)) {
- message.error("administration/automod:DELETED");
+ await message.error("administration/automod:DELETED");
message.delete();
}
diff --git a/events/ready.js b/events/ready.js
index 868135f7..9d351a9c 100644
--- a/events/ready.js
+++ b/events/ready.js
@@ -31,8 +31,6 @@ class Ready extends BaseEvent {
const birthdays = require("../helpers/birthdays");
birthdays.init(client);
- const checkUnmutes = require("../helpers/checkUnmutes");
- checkUnmutes.init(client);
const checkReminds = require("../helpers/checkReminds");
checkReminds.init(client);
diff --git a/helpers/checkUnmutes.js b/helpers/checkUnmutes.js
deleted file mode 100644
index 8cdca712..00000000
--- a/helpers/checkUnmutes.js
+++ /dev/null
@@ -1,66 +0,0 @@
-const { EmbedBuilder } = require("discord.js");
-
-/**
- *
- * @param {import("../base/JaBa")} client
- */
-module.exports.init = async function (client) {
- client.membersData
- .find({ "mute.muted": true })
- .then(members => {
- members.forEach(member => client.databaseCache.mutedUsers.set(`${member.id}${member.guildID}`, member));
- });
- setInterval(async () => {
- client.databaseCache.mutedUsers.filter(m => m.mute.endDate <= Date.now())
- .forEach(async memberData => {
- const guild = client.guilds.cache.get(memberData.guildID);
- if (!guild) return;
-
- const member = guild.members.cache.get(memberData.id) || await guild.members.fetch(memberData.id).catch(() => {
- memberData.mute = {
- muted: false,
- endDate: null,
- case: null,
- };
- memberData.save();
- client.logger.log("[Unmuted] " + memberData.id + " cannot be found.");
- return;
- });
-
- const guildData = await client.findOrCreateGuild({
- id: guild.id,
- });
-
- if (member) {
- guild.channels.cache.forEach(channel => {
- const permOverwrites = channel.permissionOverwrites.cache.get(member.id);
- if (permOverwrites) permOverwrites.delete();
- });
- }
-
- const user = member ? member.user : await client.users.fetch(memberData.id);
- const embed = new EmbedBuilder()
- .setDescription(guild.translate("moderation/unmute:SUCCESS_CASE", {
- user: user.toString(),
- usertag: user.discriminator === "0" ? user.username : user.tag,
- count: memberData.mute.case,
- }))
- .setColor("#F44271")
- .setFooter({
- text: guild.client.config.embed.footer,
- });
-
- const channel = guild.channels.cache.get(guildData.plugins.modlogs);
- if (channel) channel.send({ embeds: [embed] });
-
- memberData.mute = {
- muted: false,
- endDate: null,
- case: null,
- };
-
- client.databaseCache.mutedUsers.delete(`${memberData.id}${memberData.guildID}`);
- await memberData.save();
- });
- }, 1000);
-};
\ No newline at end of file
diff --git a/languages/en-US/administration/config.json b/languages/en-US/administration/config.json
index 562fa292..1d28678a 100644
--- a/languages/en-US/administration/config.json
+++ b/languages/en-US/administration/config.json
@@ -5,7 +5,6 @@
"BIRTHDAYS": "Birthday Greetings",
"MODLOGS": "Moderation Logs",
- "NEWS": "Bot News",
"REPORTS": "Reports",
"SUGGESTIONS": "Suggestions",
diff --git a/languages/en-US/dashboard.json b/languages/en-US/dashboard.json
index 8f5c4b7d..af0f1955 100644
--- a/languages/en-US/dashboard.json
+++ b/languages/en-US/dashboard.json
@@ -1,98 +1,96 @@
{
- "DASHBOARD": {
- "name": "English",
- "index": {
- "feeds": [ "Current User", "Node version", "Users Count", "Servers Count" ],
- "card": {
- "category": "JaBa Bot",
- "title": "Simple bot made by Jonny_Bro",
- "description": "Upper Text",
- "image": "",
- "footer": "Bottom Text"
- },
- "feedsTitle": "Feeds",
- "graphTitle": "Graphs"
+ "name": "English",
+ "index": {
+ "feeds": [ "Current User", "Node version", "Users Count", "Servers Count" ],
+ "card": {
+ "category": "JaBa Bot",
+ "title": "Simple bot made by Jonny_Bro",
+ "description": "Upper Text",
+ "image": "",
+ "footer": "Bottom Text"
},
- "manage": {
- "settings": {
- "memberCount": "Members",
- "info": {
- "info": "Info",
- "server": "Server Information"
- }
+ "feedsTitle": "Feeds",
+ "graphTitle": "Graphs"
+ },
+ "manage": {
+ "settings": {
+ "memberCount": "Members",
+ "info": {
+ "info": "Info",
+ "server": "Server Information"
}
+ }
+ },
+ "privacyPolicy": {
+ "title": "Privacy Policy",
+ "description": "Privacy Policy and Terms of Service",
+ "pp": "Complete Privacy Policy"
+ },
+ "partials": {
+ "sidebar": {
+ "dash": "Dashboard",
+ "manage": "Manage Guilds",
+ "commands": "Commands",
+ "pp": "Privacy Policy",
+ "admin": "Admin",
+ "account": "Account Pages",
+ "login": "Sign In",
+ "logout": "Sign Out"
},
- "privacyPolicy": {
- "title": "Privacy Policy",
- "description": "Privacy Policy and Terms of Service",
- "pp": "Complete Privacy Policy"
- },
- "partials": {
- "sidebar": {
- "dash": "Dashboard",
+ "navbar": {
+ "home": "Home",
+ "pages": {
"manage": "Manage Guilds",
+ "settings": "Manage Guilds",
"commands": "Commands",
"pp": "Privacy Policy",
- "admin": "Admin",
- "account": "Account Pages",
- "login": "Sign In",
- "logout": "Sign Out"
+ "admin": "Admin Panel",
+ "error": "Error",
+ "credits": "Credits",
+ "debug": "Debug",
+ "leaderboard": "Leaderboard",
+ "profile": "Profile",
+ "maintenance": "Under Maintenance"
+ }
+ },
+ "title": {
+ "pages": {
+ "manage": "Manage Guilds",
+ "settings": "Manage Guilds",
+ "commands": "Commands",
+ "pp": "Privacy Policy",
+ "admin": "Admin Panel",
+ "error": "Error",
+ "credits": "Credits",
+ "debug": "Debug",
+ "leaderboard": "Leaderboard",
+ "profile": "Profile",
+ "maintenance": "Under Maintenance"
+ }
+ },
+ "sweetalert": {
+ "success": {
+ "login": "Successfully logged in."
+ }
+ },
+ "preloader": {
+ "text": "Page is loading..."
+ },
+ "premium": {
+ "title": "Want more from JaBa?",
+ "description": "Check out premium features below!",
+ "buttonText": "Become Premium"
+ },
+ "settings": {
+ "title": "Site Configuration",
+ "description": "Configurable Viewing Options",
+ "theme": {
+ "title": "Site Theme",
+ "description": "Make the site more appealing for your eyes!"
},
- "navbar": {
- "home": "Home",
- "pages": {
- "manage": "Manage Guilds",
- "settings": "Manage Guilds",
- "commands": "Commands",
- "pp": "Privacy Policy",
- "admin": "Admin Panel",
- "error": "Error",
- "credits": "Credits",
- "debug": "Debug",
- "leaderboard": "Leaderboard",
- "profile": "Profile",
- "maintenance": "Under Maintenance"
- }
- },
- "title": {
- "pages": {
- "manage": "Manage Guilds",
- "settings": "Manage Guilds",
- "commands": "Commands",
- "pp": "Privacy Policy",
- "admin": "Admin Panel",
- "error": "Error",
- "credits": "Credits",
- "debug": "Debug",
- "leaderboard": "Leaderboard",
- "profile": "Profile",
- "maintenance": "Under Maintenance"
- }
- },
- "sweetalert": {
- "success": {
- "login": "Successfully logged in."
- }
- },
- "preloader": {
- "text": "Page is loading..."
- },
- "premium": {
- "title": "Want more from JaBa?",
- "description": "Check out premium features below!",
- "buttonText": "Become Premium"
- },
- "settings": {
- "title": "Site Configuration",
- "description": "Configurable Viewing Options",
- "theme": {
- "title": "Site Theme",
- "description": "Make the site more appealing for your eyes!"
- },
- "language": {
- "title": "Site Language",
- "description": "Select your preffered language!"
- }
+ "language": {
+ "title": "Site Language",
+ "description": "Select your preffered language!"
}
}
}
diff --git a/languages/ru-RU/administration/config.json b/languages/ru-RU/administration/config.json
index 7a6862c4..83201229 100644
--- a/languages/ru-RU/administration/config.json
+++ b/languages/ru-RU/administration/config.json
@@ -5,7 +5,6 @@
"BIRTHDAYS": "Поздравления с днём рождения",
"MODLOGS": "Логи модерации",
- "NEWS": "Новости бота",
"REPORTS": "Жалобы",
"SUGGESTIONS": "Предложения",
diff --git a/languages/ru-RU/dashboard.json b/languages/ru-RU/dashboard.json
index 7dfc21bd..f67a027d 100644
--- a/languages/ru-RU/dashboard.json
+++ b/languages/ru-RU/dashboard.json
@@ -1,98 +1,96 @@
{
- "DASHBOARD": {
- "name": "Русский",
- "index": {
- "feeds": [ "Текущий пользователь", "Версия Node", "Кол-во пользователей", "Кол-во серверов" ],
- "card": {
- "category": "JaBa Bot",
- "title": "Простой бот, созданный Jonny_Bro",
- "description": "Верхний текст",
- "image": "",
- "footer": "Нижний текст"
- },
- "feedsTitle": "Новости",
- "graphTitle": "Графики"
+ "name": "Русский",
+ "index": {
+ "feeds": [ "Текущий пользователь", "Версия Node", "Кол-во пользователей", "Кол-во серверов" ],
+ "card": {
+ "category": "JaBa Bot",
+ "title": "Простой бот, созданный Jonny_Bro",
+ "description": "Верхний текст",
+ "image": "",
+ "footer": "Нижний текст"
},
- "manage": {
- "settings": {
- "memberCount": "Участники",
- "info": {
- "info": "Информация",
- "server": "Информация о сервере"
- }
+ "feedsTitle": "Новости",
+ "graphTitle": "Графики"
+ },
+ "manage": {
+ "settings": {
+ "memberCount": "Участники",
+ "info": {
+ "info": "Информация",
+ "server": "Информация о сервере"
+ }
+ }
+ },
+ "privacyPolicy": {
+ "title": "Политика конф.",
+ "description": "Политика конфиденциальности и Условия использования",
+ "pp": "Полная политика конфиденциальности"
+ },
+ "partials": {
+ "sidebar": {
+ "dash": "Панель управления",
+ "manage": "Сервера",
+ "commands": "Команды",
+ "pp": "Политика конф.",
+ "admin": "Админ панель",
+ "account": "Аккаунт",
+ "login": "Войти",
+ "logout": "Выйти"
+ },
+ "navbar": {
+ "home": "Главная",
+ "pages": {
+ "manage": "Настройки серверов",
+ "settings": "Настройки",
+ "commands": "Команды",
+ "pp": "Политика конфиденциальности",
+ "admin": "Админ панель",
+ "error": "Ошибка",
+ "credits": "Разработчики панели",
+ "debug": "Отладка",
+ "leaderboard": "Таблица лидеров",
+ "profile": "Профиль",
+ "maintenance": "Техобслуживание"
}
},
- "privacyPolicy": {
- "title": "Политика конф.",
- "description": "Политика конфиденциальности и Условия использования",
- "pp": "Полная политика конфиденциальности"
- },
- "partials": {
- "sidebar": {
- "dash": "Панель управления",
- "manage": "Сервера",
+ "title": {
+ "pages": {
+ "manage": "Настройки серверов",
+ "settings": "Настройки",
"commands": "Команды",
- "pp": "Политика конф.",
+ "pp": "Политика конфиденциальности",
"admin": "Админ панель",
- "account": "Аккаунт",
- "login": "Войти",
- "logout": "Выйти"
+ "error": "Ошибка",
+ "credits": "Разработчики панели",
+ "debug": "Отладка",
+ "leaderboard": "Таблица лидеров",
+ "profile": "Профиль",
+ "maintenance": "Техобслуживание"
+ }
+ },
+ "sweetalert": {
+ "success": {
+ "login": "Вход выполнен."
+ }
+ },
+ "preloader": {
+ "text": "Загрузка..."
+ },
+ "premium": {
+ "title": "Хотите большего JaBa?",
+ "description": "Проверьте Премиум функции!",
+ "buttonText": "Стать Премиум"
+ },
+ "settings": {
+ "title": "Настройки сайта",
+ "description": "Настройте параметры панели управления",
+ "theme": {
+ "title": "Тема",
+ "description": "У нас есть тёмная и светлая!"
},
- "navbar": {
- "home": "Главная",
- "pages": {
- "manage": "Настройки серверов",
- "settings": "Настройки",
- "commands": "Команды",
- "pp": "Политика конфиденциальности",
- "admin": "Админ панель",
- "error": "Ошибка",
- "credits": "Разработчики панели",
- "debug": "Отладка",
- "leaderboard": "Таблица лидеров",
- "profile": "Профиль",
- "maintenance": "Техобслуживание"
- }
- },
- "title": {
- "pages": {
- "manage": "Настройки серверов",
- "settings": "Настройки",
- "commands": "Команды",
- "pp": "Политика конфиденциальности",
- "admin": "Админ панель",
- "error": "Ошибка",
- "credits": "Разработчики панели",
- "debug": "Отладка",
- "leaderboard": "Таблица лидеров",
- "profile": "Профиль",
- "maintenance": "Техобслуживание"
- }
- },
- "sweetalert": {
- "success": {
- "login": "Вход выполнен."
- }
- },
- "preloader": {
- "text": "Загрузка..."
- },
- "premium": {
- "title": "Хотите большего JaBa?",
- "description": "Проверьте Премиум функции!",
- "buttonText": "Стать Премиум"
- },
- "settings": {
- "title": "Настройки сайта",
- "description": "Настройте параметры панели управления",
- "theme": {
- "title": "Тема",
- "description": "У нас есть тёмная и светлая!"
- },
- "language": {
- "title": "Язык",
- "description": "Выберите предпочитаемый язык!"
- }
+ "language": {
+ "title": "Язык",
+ "description": "Выберите предпочитаемый язык!"
}
}
}
diff --git a/languages/uk-UA/administration/config.json b/languages/uk-UA/administration/config.json
index 81e72912..add73bae 100644
--- a/languages/uk-UA/administration/config.json
+++ b/languages/uk-UA/administration/config.json
@@ -8,7 +8,6 @@
"GOODBYE_TITLE": "Прощання",
"GOODBYE_CONTENT": "Канал: {{channel}}\nКартка: {{withImage}}",
"SPECIAL_CHANNELS": "Спеціальні канали",
- "NEWS": "Новини роботи: {{channel}}",
"MODLOGS": "Логи модерації: {{channel}}",
"BIRTHDAYS": "Привітання з днем народження: {{channel}}",
"SUGGESTIONS": "Пропозиції: {{channel}}",
diff --git a/languages/uk-UA/dashboard.json b/languages/uk-UA/dashboard.json
index 5afabbab..89e4b2ec 100644
--- a/languages/uk-UA/dashboard.json
+++ b/languages/uk-UA/dashboard.json
@@ -1,98 +1,96 @@
{
- "DASHBOARD": {
- "name": "Українська",
- "index": {
- "feeds": [ "Поточний Користувач", "Версія Node", "Кількість користувачів", "Кількість серверів" ],
- "card": {
- "category": "JaBa Бот",
- "title": "Простий бот, створений Jonny_Bro",
- "description": "Верхній Текст",
- "image": "",
- "footer": "Нижній Текст"
- },
- "feedsTitle": "Канали",
- "graphTitle": "Графіки"
+ "name": "Українська",
+ "index": {
+ "feeds": [ "Поточний Користувач", "Версія Node", "Кількість користувачів", "Кількість серверів" ],
+ "card": {
+ "category": "JaBa Бот",
+ "title": "Простий бот, створений Jonny_Bro",
+ "description": "Верхній Текст",
+ "image": "",
+ "footer": "Нижній Текст"
},
- "manage": {
- "settings": {
- "memberCount": "Учасники",
- "info": {
- "info": "Інформація",
- "server": "Інформація про Сервер"
- }
+ "feedsTitle": "Канали",
+ "graphTitle": "Графіки"
+ },
+ "manage": {
+ "settings": {
+ "memberCount": "Учасники",
+ "info": {
+ "info": "Інформація",
+ "server": "Інформація про Сервер"
}
+ }
+ },
+ "privacyPolicy": {
+ "title": "Політика Конфіденційності",
+ "description": "Політика Конфіденційності та Умови Сервісу",
+ "pp": "Повна Політика Конфіденційності"
+ },
+ "partials": {
+ "sidebar": {
+ "dash": "Панель Керування",
+ "manage": "Налаштування серверів",
+ "commands": "Команди",
+ "pp": "Політика Конфіденційності",
+ "admin": "Адмін",
+ "account": "Сторінки Аккаунта",
+ "login": "Увійти",
+ "logout": "Вийти"
},
- "privacyPolicy": {
- "title": "Політика Конфіденційності",
- "description": "Політика Конфіденційності та Умови Сервісу",
- "pp": "Повна Політика Конфіденційності"
- },
- "partials": {
- "sidebar": {
- "dash": "Панель Керування",
+ "navbar": {
+ "home": "Головна",
+ "pages": {
"manage": "Налаштування серверів",
+ "settings": "Керувати",
"commands": "Команди",
"pp": "Політика Конфіденційності",
- "admin": "Адмін",
- "account": "Сторінки Аккаунта",
- "login": "Увійти",
- "logout": "Вийти"
+ "admin": "Панель Адміністратора",
+ "error": "Помилка",
+ "credits": "Автори",
+ "debug": "Налагодження",
+ "leaderboard": "Таблиця Лідерів",
+ "profile": "Профіль",
+ "maintenance": "Технічне Обслуговування"
+ }
+ },
+ "title": {
+ "pages": {
+ "manage": "Керувати Гілдіями",
+ "settings": "Керувати",
+ "commands": "Команди",
+ "pp": "Політика Конфіденційності",
+ "admin": "Панель Адміністратора",
+ "error": "Помилка",
+ "credits": "Автори",
+ "debug": "Налагодження",
+ "leaderboard": "Таблиця Лідерів",
+ "profile": "Профіль",
+ "maintenance": "Технічне Обслуговування"
+ }
+ },
+ "sweetalert": {
+ "success": {
+ "login": "Вхід виконано."
+ }
+ },
+ "preloader": {
+ "text": "Завантаження..."
+ },
+ "premium": {
+ "title": "Бажаєте більше від JaBa?",
+ "description": "Ознайомтесь з преміум-функціями нижче!",
+ "buttonText": "Стати Преміум"
+ },
+ "settings": {
+ "title": "Налаштування Сайту",
+ "description": "Налаштовувані параметри перегляду",
+ "theme": {
+ "title": "Тема",
+ "description": "Зробіть сайт більш привабливим для своїх очей!"
},
- "navbar": {
- "home": "Головна",
- "pages": {
- "manage": "Налаштування серверів",
- "settings": "Керувати",
- "commands": "Команди",
- "pp": "Політика Конфіденційності",
- "admin": "Панель Адміністратора",
- "error": "Помилка",
- "credits": "Автори",
- "debug": "Налагодження",
- "leaderboard": "Таблиця Лідерів",
- "profile": "Профіль",
- "maintenance": "Технічне Обслуговування"
- }
- },
- "title": {
- "pages": {
- "manage": "Керувати Гілдіями",
- "settings": "Керувати",
- "commands": "Команди",
- "pp": "Політика Конфіденційності",
- "admin": "Панель Адміністратора",
- "error": "Помилка",
- "credits": "Автори",
- "debug": "Налагодження",
- "leaderboard": "Таблиця Лідерів",
- "profile": "Профіль",
- "maintenance": "Технічне Обслуговування"
- }
- },
- "sweetalert": {
- "success": {
- "login": "Вхід виконано."
- }
- },
- "preloader": {
- "text": "Завантаження..."
- },
- "premium": {
- "title": "Бажаєте більше від JaBa?",
- "description": "Ознайомтесь з преміум-функціями нижче!",
- "buttonText": "Стати Преміум"
- },
- "settings": {
- "title": "Налаштування Сайту",
- "description": "Налаштовувані параметри перегляду",
- "theme": {
- "title": "Тема",
- "description": "Зробіть сайт більш привабливим для своїх очей!"
- },
- "language": {
- "title": "Мова",
- "description": "Виберіть бажану мову!"
- }
+ "language": {
+ "title": "Мова",
+ "description": "Виберіть бажану мову!"
}
}
}
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 00000000..d5d4fdd5
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,4901 @@
+{
+ "name": "jaba",
+ "version": "4.2.6",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "jaba",
+ "version": "4.2.6",
+ "license": "ISC",
+ "dependencies": {
+ "@discord-player/extractor": "^4.3.1",
+ "@discordjs/opus": "^0.9.0",
+ "@discordjs/voice": "^0.16.0",
+ "canvas": "^2.10.2",
+ "chalk": "^4.1.2",
+ "cron": "^2.1.0",
+ "dbd-soft-ui": "^1.6.48-beta.1",
+ "discord-dashboard": "^2.3.61",
+ "discord-giveaways": "^6.0.1",
+ "discord-player": "^6.5.0",
+ "discord.js": "^14.11.0",
+ "express-session": "^1.17.3",
+ "gamedig": "^4.0.2",
+ "i18next": "^21.9.1",
+ "i18next-fs-backend": "^1.1.5",
+ "md5": "^2.2.1",
+ "moment": "^2.26.0",
+ "mongoose": "^5.13.15",
+ "ms": "^2.1.3",
+ "play-dl": "^1.9.6",
+ "session-file-store": "^1.5.0"
+ },
+ "devDependencies": {
+ "eslint": "^8.23.0"
+ }
+ },
+ "node_modules/@babel/runtime": {
+ "version": "7.21.5",
+ "license": "MIT",
+ "dependencies": {
+ "regenerator-runtime": "^0.13.11"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@discord-player/equalizer": {
+ "version": "0.2.1",
+ "license": "MIT"
+ },
+ "node_modules/@discord-player/extractor": {
+ "version": "4.3.1",
+ "license": "MIT",
+ "dependencies": {
+ "file-type": "^16.5.4",
+ "genius-lyrics": "^4.4.3",
+ "node-html-parser": "^6.1.4",
+ "reverbnation-scraper": "^2.0.0",
+ "soundcloud.ts": "^0.5.0",
+ "spotify-url-info": "^3.2.5",
+ "youtube-sr": "^4.3.4"
+ }
+ },
+ "node_modules/@discord-player/utils": {
+ "version": "0.2.1",
+ "license": "MIT",
+ "dependencies": {
+ "@discordjs/collection": "^1.1.0"
+ }
+ },
+ "node_modules/@discordjs/builders": {
+ "version": "1.6.3",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@discordjs/formatters": "^0.3.1",
+ "@discordjs/util": "^0.3.1",
+ "@sapphire/shapeshift": "^3.8.2",
+ "discord-api-types": "^0.37.41",
+ "fast-deep-equal": "^3.1.3",
+ "ts-mixer": "^6.0.3",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=16.9.0"
+ }
+ },
+ "node_modules/@discordjs/collection": {
+ "version": "1.5.1",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=16.9.0"
+ }
+ },
+ "node_modules/@discordjs/formatters": {
+ "version": "0.3.1",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "discord-api-types": "^0.37.41"
+ },
+ "engines": {
+ "node": ">=16.9.0"
+ }
+ },
+ "node_modules/@discordjs/node-pre-gyp": {
+ "version": "0.4.5",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "detect-libc": "^2.0.0",
+ "https-proxy-agent": "^5.0.0",
+ "make-dir": "^3.1.0",
+ "node-fetch": "^2.6.7",
+ "nopt": "^5.0.0",
+ "npmlog": "^5.0.1",
+ "rimraf": "^3.0.2",
+ "semver": "^7.3.5",
+ "tar": "^6.1.11"
+ },
+ "bin": {
+ "node-pre-gyp": "bin/node-pre-gyp"
+ }
+ },
+ "node_modules/@discordjs/opus": {
+ "version": "0.9.0",
+ "hasInstallScript": true,
+ "license": "MIT",
+ "dependencies": {
+ "@discordjs/node-pre-gyp": "^0.4.5",
+ "node-addon-api": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/@discordjs/rest": {
+ "version": "1.7.1",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@discordjs/collection": "^1.5.1",
+ "@discordjs/util": "^0.3.0",
+ "@sapphire/async-queue": "^1.5.0",
+ "@sapphire/snowflake": "^3.4.2",
+ "discord-api-types": "^0.37.41",
+ "file-type": "^18.3.0",
+ "tslib": "^2.5.0",
+ "undici": "^5.22.0"
+ },
+ "engines": {
+ "node": ">=16.9.0"
+ }
+ },
+ "node_modules/@discordjs/rest/node_modules/file-type": {
+ "version": "18.4.0",
+ "license": "MIT",
+ "dependencies": {
+ "readable-web-to-node-stream": "^3.0.2",
+ "strtok3": "^7.0.0",
+ "token-types": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/file-type?sponsor=1"
+ }
+ },
+ "node_modules/@discordjs/rest/node_modules/peek-readable": {
+ "version": "5.0.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/Borewit"
+ }
+ },
+ "node_modules/@discordjs/rest/node_modules/strtok3": {
+ "version": "7.0.0",
+ "license": "MIT",
+ "dependencies": {
+ "@tokenizer/token": "^0.3.0",
+ "peek-readable": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/Borewit"
+ }
+ },
+ "node_modules/@discordjs/rest/node_modules/token-types": {
+ "version": "5.0.1",
+ "license": "MIT",
+ "dependencies": {
+ "@tokenizer/token": "^0.3.0",
+ "ieee754": "^1.2.1"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/Borewit"
+ }
+ },
+ "node_modules/@discordjs/util": {
+ "version": "0.3.1",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=16.9.0"
+ }
+ },
+ "node_modules/@discordjs/voice": {
+ "version": "0.16.0",
+ "resolved": "https://registry.npmjs.org/@discordjs/voice/-/voice-0.16.0.tgz",
+ "integrity": "sha512-ToGCvHD1cBscuW3p+C7zOF5+L7MJmU4GjdOARfNk9mkHyFFZq4grK+Sxr3QXKbp27DtfDBc9uqD4GUOYgxngfA==",
+ "dependencies": {
+ "@types/ws": "^8.5.4",
+ "discord-api-types": "^0.37.37",
+ "prism-media": "^1.3.5",
+ "tslib": "^2.5.0",
+ "ws": "^8.13.0"
+ },
+ "engines": {
+ "node": ">=16.9.0"
+ }
+ },
+ "node_modules/@discordjs/ws": {
+ "version": "0.8.3",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@discordjs/collection": "^1.5.1",
+ "@discordjs/rest": "^1.7.1",
+ "@discordjs/util": "^0.3.1",
+ "@sapphire/async-queue": "^1.5.0",
+ "@types/ws": "^8.5.4",
+ "@vladfrangu/async_event_emitter": "^2.2.1",
+ "discord-api-types": "^0.37.41",
+ "tslib": "^2.5.0",
+ "ws": "^8.13.0"
+ },
+ "engines": {
+ "node": ">=16.9.0"
+ }
+ },
+ "node_modules/@eslint-community/eslint-utils": {
+ "version": "4.4.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "eslint-visitor-keys": "^3.3.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
+ }
+ },
+ "node_modules/@eslint-community/regexpp": {
+ "version": "4.5.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@eslint/eslintrc": {
+ "version": "2.0.3",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ajv": "^6.12.4",
+ "debug": "^4.3.2",
+ "espree": "^9.5.2",
+ "globals": "^13.19.0",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^4.1.0",
+ "minimatch": "^3.1.2",
+ "strip-json-comments": "^3.1.1"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/@eslint/js": {
+ "version": "8.41.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@gar/promisify": {
+ "version": "1.1.3",
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/@humanwhocodes/config-array": {
+ "version": "0.11.8",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@humanwhocodes/object-schema": "^1.2.1",
+ "debug": "^4.1.1",
+ "minimatch": "^3.0.5"
+ },
+ "engines": {
+ "node": ">=10.10.0"
+ }
+ },
+ "node_modules/@humanwhocodes/module-importer": {
+ "version": "1.0.1",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=12.22"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/nzakas"
+ }
+ },
+ "node_modules/@humanwhocodes/object-schema": {
+ "version": "1.2.1",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@keyv/sqlite": {
+ "version": "3.6.5",
+ "license": "MIT",
+ "dependencies": {
+ "pify": "^5.0.0",
+ "sqlite3": "^5.1.6"
+ },
+ "engines": {
+ "node": ">= 12"
+ }
+ },
+ "node_modules/@mapbox/node-pre-gyp": {
+ "version": "1.0.10",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "detect-libc": "^2.0.0",
+ "https-proxy-agent": "^5.0.0",
+ "make-dir": "^3.1.0",
+ "node-fetch": "^2.6.7",
+ "nopt": "^5.0.0",
+ "npmlog": "^5.0.1",
+ "rimraf": "^3.0.2",
+ "semver": "^7.3.5",
+ "tar": "^6.1.11"
+ },
+ "bin": {
+ "node-pre-gyp": "bin/node-pre-gyp"
+ }
+ },
+ "node_modules/@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@npmcli/fs": {
+ "version": "1.1.1",
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "@gar/promisify": "^1.0.1",
+ "semver": "^7.3.5"
+ }
+ },
+ "node_modules/@npmcli/move-file": {
+ "version": "1.1.2",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "mkdirp": "^1.0.4",
+ "rimraf": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@sapphire/async-queue": {
+ "version": "1.5.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=v14.0.0",
+ "npm": ">=7.0.0"
+ }
+ },
+ "node_modules/@sapphire/shapeshift": {
+ "version": "3.9.0",
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3",
+ "lodash": "^4.17.21"
+ },
+ "engines": {
+ "node": ">=v14.0.0",
+ "npm": ">=7.0.0"
+ }
+ },
+ "node_modules/@sapphire/snowflake": {
+ "version": "3.5.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">=v14.0.0",
+ "npm": ">=7.0.0"
+ }
+ },
+ "node_modules/@sindresorhus/is": {
+ "version": "5.3.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/is?sponsor=1"
+ }
+ },
+ "node_modules/@socket.io/component-emitter": {
+ "version": "3.1.0",
+ "license": "MIT"
+ },
+ "node_modules/@szmarczak/http-timer": {
+ "version": "5.0.1",
+ "license": "MIT",
+ "dependencies": {
+ "defer-to-connect": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=14.16"
+ }
+ },
+ "node_modules/@tokenizer/token": {
+ "version": "0.3.0",
+ "license": "MIT"
+ },
+ "node_modules/@tootallnate/once": {
+ "version": "1.1.2",
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/@types/bson": {
+ "version": "4.0.5",
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/cookie": {
+ "version": "0.4.1",
+ "license": "MIT"
+ },
+ "node_modules/@types/cors": {
+ "version": "2.8.13",
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/http-cache-semantics": {
+ "version": "4.0.1",
+ "license": "MIT"
+ },
+ "node_modules/@types/mongodb": {
+ "version": "3.6.20",
+ "license": "MIT",
+ "dependencies": {
+ "@types/bson": "*",
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/node": {
+ "version": "20.2.3",
+ "license": "MIT"
+ },
+ "node_modules/@types/ws": {
+ "version": "8.5.4",
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@vladfrangu/async_event_emitter": {
+ "version": "2.2.2",
+ "license": "MIT",
+ "engines": {
+ "node": ">=v14.0.0",
+ "npm": ">=7.0.0"
+ }
+ },
+ "node_modules/abbrev": {
+ "version": "1.1.1",
+ "license": "ISC"
+ },
+ "node_modules/accepts": {
+ "version": "1.3.8",
+ "license": "MIT",
+ "dependencies": {
+ "mime-types": "~2.1.34",
+ "negotiator": "0.6.3"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/acorn": {
+ "version": "8.8.2",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/acorn-jsx": {
+ "version": "5.3.2",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/agent-base": {
+ "version": "6.0.2",
+ "license": "MIT",
+ "dependencies": {
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 6.0.0"
+ }
+ },
+ "node_modules/agentkeepalive": {
+ "version": "4.3.0",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "debug": "^4.1.0",
+ "depd": "^2.0.0",
+ "humanize-ms": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 8.0.0"
+ }
+ },
+ "node_modules/aggregate-error": {
+ "version": "3.1.0",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "clean-stack": "^2.0.0",
+ "indent-string": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ajv": {
+ "version": "6.12.6",
+ "dev": true,
+ "license": "MIT",
+ "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/amdefine": {
+ "version": "1.0.1",
+ "license": "BSD-3-Clause OR MIT",
+ "engines": {
+ "node": ">=0.4.2"
+ }
+ },
+ "node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/any-promise": {
+ "version": "1.3.0",
+ "license": "MIT"
+ },
+ "node_modules/aproba": {
+ "version": "2.0.0",
+ "license": "ISC"
+ },
+ "node_modules/are-we-there-yet": {
+ "version": "2.0.0",
+ "license": "ISC",
+ "dependencies": {
+ "delegates": "^1.0.0",
+ "readable-stream": "^3.6.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/are-we-there-yet/node_modules/readable-stream": {
+ "version": "3.6.2",
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/are-we-there-yet/node_modules/string_decoder": {
+ "version": "1.3.0",
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "~5.2.0"
+ }
+ },
+ "node_modules/argparse": {
+ "version": "2.0.1",
+ "dev": true,
+ "license": "Python-2.0"
+ },
+ "node_modules/array-flatten": {
+ "version": "1.1.1",
+ "license": "MIT"
+ },
+ "node_modules/asn1.js": {
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz",
+ "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==",
+ "dependencies": {
+ "bn.js": "^4.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0",
+ "safer-buffer": "^2.1.0"
+ }
+ },
+ "node_modules/assistants-safe-storage": {
+ "version": "1.0.0",
+ "license": "MIT",
+ "dependencies": {
+ "cryptr": "^6.0.2"
+ }
+ },
+ "node_modules/async": {
+ "version": "3.2.4",
+ "license": "MIT"
+ },
+ "node_modules/axios": {
+ "version": "0.22.0",
+ "license": "MIT",
+ "dependencies": {
+ "follow-redirects": "^1.14.4"
+ }
+ },
+ "node_modules/bagpipe": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/bagpipe/-/bagpipe-0.3.5.tgz",
+ "integrity": "sha512-42sAlmPDKes1nLm/aly+0VdaopSU9br+jkRELedhQxI5uXHgtk47I83Mpmf4zoNTRMASdLFtUkimlu/Z9zQ8+g=="
+ },
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
+ "license": "MIT"
+ },
+ "node_modules/barse": {
+ "version": "0.4.3",
+ "license": "MIT",
+ "dependencies": {
+ "readable-stream": "~1.0.2"
+ }
+ },
+ "node_modules/base64-js": {
+ "version": "1.5.1",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/base64id": {
+ "version": "2.0.0",
+ "license": "MIT",
+ "engines": {
+ "node": "^4.5.0 || >= 5.9"
+ }
+ },
+ "node_modules/better-sqlite3": {
+ "version": "7.6.2",
+ "hasInstallScript": true,
+ "license": "MIT",
+ "dependencies": {
+ "bindings": "^1.5.0",
+ "prebuild-install": "^7.1.0"
+ }
+ },
+ "node_modules/bindings": {
+ "version": "1.5.0",
+ "license": "MIT",
+ "dependencies": {
+ "file-uri-to-path": "1.0.0"
+ }
+ },
+ "node_modules/bl": {
+ "version": "2.2.1",
+ "license": "MIT",
+ "dependencies": {
+ "readable-stream": "^2.3.5",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "node_modules/bl/node_modules/isarray": {
+ "version": "1.0.0",
+ "license": "MIT"
+ },
+ "node_modules/bl/node_modules/readable-stream": {
+ "version": "2.3.8",
+ "license": "MIT",
+ "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/safe-buffer": {
+ "version": "5.1.2",
+ "license": "MIT"
+ },
+ "node_modules/bl/node_modules/string_decoder": {
+ "version": "1.1.1",
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "node_modules/bluebird": {
+ "version": "3.5.1",
+ "license": "MIT"
+ },
+ "node_modules/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=="
+ },
+ "node_modules/body-parser": {
+ "version": "1.20.2",
+ "license": "MIT",
+ "dependencies": {
+ "bytes": "3.1.2",
+ "content-type": "~1.0.5",
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
+ "http-errors": "2.0.0",
+ "iconv-lite": "0.4.24",
+ "on-finished": "2.4.1",
+ "qs": "6.11.0",
+ "raw-body": "2.5.2",
+ "type-is": "~1.6.18",
+ "unpipe": "1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8",
+ "npm": "1.2.8000 || >= 1.4.16"
+ }
+ },
+ "node_modules/body-parser/node_modules/debug": {
+ "version": "2.6.9",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/body-parser/node_modules/ms": {
+ "version": "2.0.0",
+ "license": "MIT"
+ },
+ "node_modules/boolbase": {
+ "version": "1.0.0",
+ "license": "ISC"
+ },
+ "node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/bson": {
+ "version": "1.1.6",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=0.6.19"
+ }
+ },
+ "node_modules/buffer": {
+ "version": "5.7.1",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
+ "node_modules/busboy": {
+ "version": "1.6.0",
+ "dependencies": {
+ "streamsearch": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=10.16.0"
+ }
+ },
+ "node_modules/bytes": {
+ "version": "3.1.2",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/cacache": {
+ "version": "15.3.0",
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "@npmcli/fs": "^1.0.0",
+ "@npmcli/move-file": "^1.0.1",
+ "chownr": "^2.0.0",
+ "fs-minipass": "^2.0.0",
+ "glob": "^7.1.4",
+ "infer-owner": "^1.0.4",
+ "lru-cache": "^6.0.0",
+ "minipass": "^3.1.1",
+ "minipass-collect": "^1.0.2",
+ "minipass-flush": "^1.0.5",
+ "minipass-pipeline": "^1.2.2",
+ "mkdirp": "^1.0.3",
+ "p-map": "^4.0.0",
+ "promise-inflight": "^1.0.1",
+ "rimraf": "^3.0.2",
+ "ssri": "^8.0.1",
+ "tar": "^6.0.2",
+ "unique-filename": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/cacache/node_modules/minipass": {
+ "version": "3.3.6",
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cacheable-lookup": {
+ "version": "7.0.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.16"
+ }
+ },
+ "node_modules/cacheable-request": {
+ "version": "10.2.10",
+ "license": "MIT",
+ "dependencies": {
+ "@types/http-cache-semantics": "^4.0.1",
+ "get-stream": "^6.0.1",
+ "http-cache-semantics": "^4.1.1",
+ "keyv": "^4.5.2",
+ "mimic-response": "^4.0.0",
+ "normalize-url": "^8.0.0",
+ "responselike": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=14.16"
+ }
+ },
+ "node_modules/call-bind": {
+ "version": "1.0.2",
+ "license": "MIT",
+ "dependencies": {
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/callsites": {
+ "version": "3.1.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/canvas": {
+ "version": "2.11.2",
+ "hasInstallScript": true,
+ "license": "MIT",
+ "dependencies": {
+ "@mapbox/node-pre-gyp": "^1.0.0",
+ "nan": "^2.17.0",
+ "simple-get": "^3.0.3"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/chalk": {
+ "version": "4.1.2",
+ "license": "MIT",
+ "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",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/cheerio": {
+ "version": "1.0.0-rc.12",
+ "license": "MIT",
+ "dependencies": {
+ "cheerio-select": "^2.1.0",
+ "dom-serializer": "^2.0.0",
+ "domhandler": "^5.0.3",
+ "domutils": "^3.0.1",
+ "htmlparser2": "^8.0.1",
+ "parse5": "^7.0.0",
+ "parse5-htmlparser2-tree-adapter": "^7.0.0"
+ },
+ "engines": {
+ "node": ">= 6"
+ },
+ "funding": {
+ "url": "https://github.com/cheeriojs/cheerio?sponsor=1"
+ }
+ },
+ "node_modules/cheerio-select": {
+ "version": "2.1.0",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "boolbase": "^1.0.0",
+ "css-select": "^5.1.0",
+ "css-what": "^6.1.0",
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.3",
+ "domutils": "^3.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
+ "node_modules/chownr": {
+ "version": "2.0.0",
+ "license": "ISC",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/clean-stack": {
+ "version": "2.2.0",
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/color-convert": {
+ "version": "2.0.1",
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.4",
+ "license": "MIT"
+ },
+ "node_modules/color-support": {
+ "version": "1.1.3",
+ "license": "ISC",
+ "bin": {
+ "color-support": "bin.js"
+ }
+ },
+ "node_modules/colors": {
+ "version": "1.4.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.1.90"
+ }
+ },
+ "node_modules/commander": {
+ "version": "2.8.1",
+ "license": "MIT",
+ "dependencies": {
+ "graceful-readlink": ">= 1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.6.x"
+ }
+ },
+ "node_modules/compressjs": {
+ "version": "1.0.3",
+ "license": "GPL",
+ "dependencies": {
+ "amdefine": "~1.0.0",
+ "commander": "~2.8.1"
+ },
+ "bin": {
+ "compressjs": "bin/compressjs"
+ }
+ },
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "license": "MIT"
+ },
+ "node_modules/console-control-strings": {
+ "version": "1.1.0",
+ "license": "ISC"
+ },
+ "node_modules/content-disposition": {
+ "version": "0.5.4",
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "5.2.1"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/content-type": {
+ "version": "1.0.5",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/cookie": {
+ "version": "0.4.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/cookie-parser": {
+ "version": "1.4.6",
+ "license": "MIT",
+ "dependencies": {
+ "cookie": "0.4.1",
+ "cookie-signature": "1.0.6"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/cookie-signature": {
+ "version": "1.0.6",
+ "license": "MIT"
+ },
+ "node_modules/core-util-is": {
+ "version": "1.0.3",
+ "license": "MIT"
+ },
+ "node_modules/cors": {
+ "version": "2.8.5",
+ "license": "MIT",
+ "dependencies": {
+ "object-assign": "^4",
+ "vary": "^1"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/cron": {
+ "version": "2.3.0",
+ "license": "MIT",
+ "dependencies": {
+ "luxon": "^3.2.1"
+ }
+ },
+ "node_modules/cross-spawn": {
+ "version": "7.0.3",
+ "dev": true,
+ "license": "MIT",
+ "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",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/cryptr": {
+ "version": "6.2.0",
+ "license": "MIT"
+ },
+ "node_modules/css-select": {
+ "version": "5.1.0",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "boolbase": "^1.0.0",
+ "css-what": "^6.1.0",
+ "domhandler": "^5.0.2",
+ "domutils": "^3.0.1",
+ "nth-check": "^2.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
+ "node_modules/css-what": {
+ "version": "6.1.0",
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">= 6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
+ "node_modules/dbd-soft-ui": {
+ "version": "1.6.48-beta.1",
+ "license": "MIT",
+ "dependencies": {
+ "@keyv/sqlite": "^3.6.1",
+ "colors": "1.4.0",
+ "keyv": "^4.5.0",
+ "node-fetch": "2.6.7",
+ "nodeactyl": "^3.2.2",
+ "quick.db": "^7.1.3"
+ }
+ },
+ "node_modules/dbd-soft-ui/node_modules/node-fetch": {
+ "version": "2.6.7",
+ "license": "MIT",
+ "dependencies": {
+ "whatwg-url": "^5.0.0"
+ },
+ "engines": {
+ "node": "4.x || >=6.0.0"
+ },
+ "peerDependencies": {
+ "encoding": "^0.1.0"
+ },
+ "peerDependenciesMeta": {
+ "encoding": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/debug": {
+ "version": "4.3.4",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/debug/node_modules/ms": {
+ "version": "2.1.2",
+ "license": "MIT"
+ },
+ "node_modules/decompress-response": {
+ "version": "6.0.0",
+ "license": "MIT",
+ "dependencies": {
+ "mimic-response": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/decompress-response/node_modules/mimic-response": {
+ "version": "3.1.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/deep-extend": {
+ "version": "0.6.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/deep-is": {
+ "version": "0.1.4",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/deepmerge-ts": {
+ "version": "4.3.0",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=12.4.0"
+ }
+ },
+ "node_modules/defer-to-connect": {
+ "version": "2.0.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/delegates": {
+ "version": "1.0.0",
+ "license": "MIT"
+ },
+ "node_modules/denque": {
+ "version": "1.5.1",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/depd": {
+ "version": "2.0.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/destroy": {
+ "version": "1.2.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8",
+ "npm": "1.2.8000 || >= 1.4.16"
+ }
+ },
+ "node_modules/detect-libc": {
+ "version": "2.0.1",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/discord-api-types": {
+ "version": "0.37.42",
+ "license": "MIT"
+ },
+ "node_modules/discord-dashboard": {
+ "version": "2.3.61",
+ "license": "CC BY-NC-SA 4.0",
+ "dependencies": {
+ "assistants-safe-storage": "^1.0.0",
+ "body-parser": "^1.20.0",
+ "colors": "^1.4.0",
+ "cookie-parser": "^1.4.6",
+ "discord-dashboard": "^2.3.39",
+ "discord-dashboard-pp-system": "^1.0.2",
+ "discord-oauth2": "^2.10.0",
+ "discord.js": "*",
+ "ejs": "^3.1.8",
+ "express": "^4.17.3",
+ "express-partials": "^0.3.0",
+ "express-rate-limit": "^6.4.0",
+ "express-session": "^1.17.3",
+ "https": "^1.0.0",
+ "keyv": "^4.5.2",
+ "node-fetch": "^2.6.7",
+ "readline-sync": "^1.4.10",
+ "socket.io": "^4.5.1",
+ "uuid": "^8.3.2"
+ }
+ },
+ "node_modules/discord-dashboard-pp-system": {
+ "version": "1.0.2",
+ "license": "ISC",
+ "dependencies": {
+ "uuid": "*"
+ }
+ },
+ "node_modules/discord-giveaways": {
+ "version": "6.0.1",
+ "license": "MIT",
+ "dependencies": {
+ "deepmerge-ts": "^4.2.1",
+ "serialize-javascript": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=16.9.0"
+ },
+ "peerDependencies": {
+ "discord.js": ">=14.0.0"
+ }
+ },
+ "node_modules/discord-oauth2": {
+ "version": "2.11.0",
+ "license": "MIT"
+ },
+ "node_modules/discord-player": {
+ "version": "6.5.0",
+ "license": "MIT",
+ "dependencies": {
+ "@discord-player/equalizer": "^0.2.1",
+ "@discord-player/utils": "^0.2.1",
+ "@discordjs/voice": "latest",
+ "libsodium-wrappers": "^0.7.10"
+ },
+ "funding": {
+ "url": "https://github.com/Androz2091/discord-player?sponsor=1"
+ },
+ "peerDependencies": {
+ "@discord-player/extractor": "^4.3.1",
+ "discord.js": "14.x",
+ "youtube-sr": "4.x"
+ }
+ },
+ "node_modules/discord.js": {
+ "version": "14.11.0",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@discordjs/builders": "^1.6.3",
+ "@discordjs/collection": "^1.5.1",
+ "@discordjs/formatters": "^0.3.1",
+ "@discordjs/rest": "^1.7.1",
+ "@discordjs/util": "^0.3.1",
+ "@discordjs/ws": "^0.8.3",
+ "@sapphire/snowflake": "^3.4.2",
+ "@types/ws": "^8.5.4",
+ "discord-api-types": "^0.37.41",
+ "fast-deep-equal": "^3.1.3",
+ "lodash.snakecase": "^4.1.1",
+ "tslib": "^2.5.0",
+ "undici": "^5.22.0",
+ "ws": "^8.13.0"
+ },
+ "engines": {
+ "node": ">=16.9.0"
+ }
+ },
+ "node_modules/doctrine": {
+ "version": "3.0.0",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/dom-serializer": {
+ "version": "2.0.0",
+ "license": "MIT",
+ "dependencies": {
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.2",
+ "entities": "^4.2.0"
+ },
+ "funding": {
+ "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
+ }
+ },
+ "node_modules/domelementtype": {
+ "version": "2.3.0",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fb55"
+ }
+ ],
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/domhandler": {
+ "version": "5.0.3",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "domelementtype": "^2.3.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domhandler?sponsor=1"
+ }
+ },
+ "node_modules/domutils": {
+ "version": "3.1.0",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "dom-serializer": "^2.0.0",
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domutils?sponsor=1"
+ }
+ },
+ "node_modules/ee-first": {
+ "version": "1.1.1",
+ "license": "MIT"
+ },
+ "node_modules/ejs": {
+ "version": "3.1.9",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "jake": "^10.8.5"
+ },
+ "bin": {
+ "ejs": "bin/cli.js"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "license": "MIT"
+ },
+ "node_modules/encodeurl": {
+ "version": "1.0.2",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/encoding": {
+ "version": "0.1.13",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "iconv-lite": "^0.6.2"
+ }
+ },
+ "node_modules/encoding/node_modules/iconv-lite": {
+ "version": "0.6.3",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/end-of-stream": {
+ "version": "1.4.4",
+ "license": "MIT",
+ "dependencies": {
+ "once": "^1.4.0"
+ }
+ },
+ "node_modules/engine.io": {
+ "version": "6.4.2",
+ "license": "MIT",
+ "dependencies": {
+ "@types/cookie": "^0.4.1",
+ "@types/cors": "^2.8.12",
+ "@types/node": ">=10.0.0",
+ "accepts": "~1.3.4",
+ "base64id": "2.0.0",
+ "cookie": "~0.4.1",
+ "cors": "~2.8.5",
+ "debug": "~4.3.1",
+ "engine.io-parser": "~5.0.3",
+ "ws": "~8.11.0"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/engine.io-parser": {
+ "version": "5.0.7",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/engine.io/node_modules/ws": {
+ "version": "8.11.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": "^5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/entities": {
+ "version": "4.5.0",
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/env-paths": {
+ "version": "2.2.1",
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/err-code": {
+ "version": "2.0.3",
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/escape-html": {
+ "version": "1.0.3",
+ "license": "MIT"
+ },
+ "node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint": {
+ "version": "8.41.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@eslint-community/regexpp": "^4.4.0",
+ "@eslint/eslintrc": "^2.0.3",
+ "@eslint/js": "8.41.0",
+ "@humanwhocodes/config-array": "^0.11.8",
+ "@humanwhocodes/module-importer": "^1.0.1",
+ "@nodelib/fs.walk": "^1.2.8",
+ "ajv": "^6.10.0",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.2",
+ "debug": "^4.3.2",
+ "doctrine": "^3.0.0",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^7.2.0",
+ "eslint-visitor-keys": "^3.4.1",
+ "espree": "^9.5.2",
+ "esquery": "^1.4.2",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^6.0.1",
+ "find-up": "^5.0.0",
+ "glob-parent": "^6.0.2",
+ "globals": "^13.19.0",
+ "graphemer": "^1.4.0",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "is-path-inside": "^3.0.3",
+ "js-yaml": "^4.1.0",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.1.2",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.1",
+ "strip-ansi": "^6.0.1",
+ "strip-json-comments": "^3.1.0",
+ "text-table": "^0.2.0"
+ },
+ "bin": {
+ "eslint": "bin/eslint.js"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint-scope": {
+ "version": "7.2.0",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint-visitor-keys": {
+ "version": "3.4.1",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/espree": {
+ "version": "9.5.2",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "acorn": "^8.8.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^3.4.1"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/esquery": {
+ "version": "1.5.0",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "estraverse": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/esrecurse": {
+ "version": "4.3.0",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/estraverse": {
+ "version": "5.3.0",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/esutils": {
+ "version": "2.0.3",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/etag": {
+ "version": "1.8.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/event-to-promise": {
+ "version": "0.7.0",
+ "license": "MIT"
+ },
+ "node_modules/expand-template": {
+ "version": "2.0.3",
+ "license": "(MIT OR WTFPL)",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/express": {
+ "version": "4.18.2",
+ "license": "MIT",
+ "dependencies": {
+ "accepts": "~1.3.8",
+ "array-flatten": "1.1.1",
+ "body-parser": "1.20.1",
+ "content-disposition": "0.5.4",
+ "content-type": "~1.0.4",
+ "cookie": "0.5.0",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "finalhandler": "1.2.0",
+ "fresh": "0.5.2",
+ "http-errors": "2.0.0",
+ "merge-descriptors": "1.0.1",
+ "methods": "~1.1.2",
+ "on-finished": "2.4.1",
+ "parseurl": "~1.3.3",
+ "path-to-regexp": "0.1.7",
+ "proxy-addr": "~2.0.7",
+ "qs": "6.11.0",
+ "range-parser": "~1.2.1",
+ "safe-buffer": "5.2.1",
+ "send": "0.18.0",
+ "serve-static": "1.15.0",
+ "setprototypeof": "1.2.0",
+ "statuses": "2.0.1",
+ "type-is": "~1.6.18",
+ "utils-merge": "1.0.1",
+ "vary": "~1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.10.0"
+ }
+ },
+ "node_modules/express-partials": {
+ "version": "0.3.0",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/express-rate-limit": {
+ "version": "6.7.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 12.9.0"
+ },
+ "peerDependencies": {
+ "express": "^4 || ^5"
+ }
+ },
+ "node_modules/express-session": {
+ "version": "1.17.3",
+ "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.17.3.tgz",
+ "integrity": "sha512-4+otWXlShYlG1Ma+2Jnn+xgKUZTMJ5QD3YvfilX3AcocOAbIkVylSWEklzALe/+Pu4qV6TYBj5GwOBFfdKqLBw==",
+ "dependencies": {
+ "cookie": "0.4.2",
+ "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.2",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/express-session/node_modules/debug": {
+ "version": "2.6.9",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/express-session/node_modules/ms": {
+ "version": "2.0.0",
+ "license": "MIT"
+ },
+ "node_modules/express/node_modules/body-parser": {
+ "version": "1.20.1",
+ "license": "MIT",
+ "dependencies": {
+ "bytes": "3.1.2",
+ "content-type": "~1.0.4",
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
+ "http-errors": "2.0.0",
+ "iconv-lite": "0.4.24",
+ "on-finished": "2.4.1",
+ "qs": "6.11.0",
+ "raw-body": "2.5.1",
+ "type-is": "~1.6.18",
+ "unpipe": "1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8",
+ "npm": "1.2.8000 || >= 1.4.16"
+ }
+ },
+ "node_modules/express/node_modules/cookie": {
+ "version": "0.5.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/express/node_modules/debug": {
+ "version": "2.6.9",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/express/node_modules/ms": {
+ "version": "2.0.0",
+ "license": "MIT"
+ },
+ "node_modules/express/node_modules/raw-body": {
+ "version": "2.5.1",
+ "license": "MIT",
+ "dependencies": {
+ "bytes": "3.1.2",
+ "http-errors": "2.0.0",
+ "iconv-lite": "0.4.24",
+ "unpipe": "1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/fast-deep-equal": {
+ "version": "3.1.3",
+ "license": "MIT"
+ },
+ "node_modules/fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/fast-levenshtein": {
+ "version": "2.0.6",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/fastq": {
+ "version": "1.15.0",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "node_modules/file-entry-cache": {
+ "version": "6.0.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "flat-cache": "^3.0.4"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/file-type": {
+ "version": "16.5.4",
+ "license": "MIT",
+ "dependencies": {
+ "readable-web-to-node-stream": "^3.0.0",
+ "strtok3": "^6.2.4",
+ "token-types": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/file-type?sponsor=1"
+ }
+ },
+ "node_modules/file-uri-to-path": {
+ "version": "1.0.0",
+ "license": "MIT"
+ },
+ "node_modules/filelist": {
+ "version": "1.0.4",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "minimatch": "^5.0.1"
+ }
+ },
+ "node_modules/filelist/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/filelist/node_modules/minimatch": {
+ "version": "5.1.6",
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/finalhandler": {
+ "version": "1.2.0",
+ "license": "MIT",
+ "dependencies": {
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "on-finished": "2.4.1",
+ "parseurl": "~1.3.3",
+ "statuses": "2.0.1",
+ "unpipe": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/finalhandler/node_modules/debug": {
+ "version": "2.6.9",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/finalhandler/node_modules/ms": {
+ "version": "2.0.0",
+ "license": "MIT"
+ },
+ "node_modules/find-up": {
+ "version": "5.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/flat-cache": {
+ "version": "3.0.4",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "flatted": "^3.1.0",
+ "rimraf": "^3.0.2"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/flatted": {
+ "version": "3.2.7",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/follow-redirects": {
+ "version": "1.15.2",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/RubenVerborgh"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/form-data-encoder": {
+ "version": "2.1.4",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 14.17"
+ }
+ },
+ "node_modules/forwarded": {
+ "version": "0.2.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/fresh": {
+ "version": "0.5.2",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/fs-constants": {
+ "version": "1.0.0",
+ "license": "MIT"
+ },
+ "node_modules/fs-extra": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=6 <7 || >=8"
+ }
+ },
+ "node_modules/fs-minipass": {
+ "version": "2.1.0",
+ "license": "ISC",
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/fs-minipass/node_modules/minipass": {
+ "version": "3.3.6",
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "license": "ISC"
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.1",
+ "license": "MIT"
+ },
+ "node_modules/gamedig": {
+ "version": "4.0.6",
+ "license": "MIT",
+ "dependencies": {
+ "cheerio": "^1.0.0-rc.10",
+ "compressjs": "^1.0.2",
+ "gbxremote": "^0.2.1",
+ "got": "^12.0.3",
+ "iconv-lite": "^0.6.3",
+ "long": "^5.2.0",
+ "minimist": "^1.2.6",
+ "punycode": "^2.1.1",
+ "varint": "^6.0.0"
+ },
+ "bin": {
+ "gamedig": "bin/gamedig.js"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/gamedig/node_modules/iconv-lite": {
+ "version": "0.6.3",
+ "license": "MIT",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/gauge": {
+ "version": "3.0.2",
+ "license": "ISC",
+ "dependencies": {
+ "aproba": "^1.0.3 || ^2.0.0",
+ "color-support": "^1.1.2",
+ "console-control-strings": "^1.0.0",
+ "has-unicode": "^2.0.1",
+ "object-assign": "^4.1.1",
+ "signal-exit": "^3.0.0",
+ "string-width": "^4.2.3",
+ "strip-ansi": "^6.0.1",
+ "wide-align": "^1.1.2"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/gbxremote": {
+ "version": "0.2.1",
+ "dependencies": {
+ "any-promise": "^1.1.0",
+ "barse": "~0.4.2",
+ "event-to-promise": "^0.7.0",
+ "string-to-stream": "^1.0.1",
+ "xmlrpc": "^1.3.1"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/genius-lyrics": {
+ "version": "4.4.3",
+ "license": "MIT",
+ "dependencies": {
+ "cheerio": "^1.0.0-rc.9",
+ "undici": "^5.8.2"
+ }
+ },
+ "node_modules/get-intrinsic": {
+ "version": "1.2.1",
+ "license": "MIT",
+ "dependencies": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/get-stream": {
+ "version": "6.0.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/github-from-package": {
+ "version": "0.0.0",
+ "license": "MIT"
+ },
+ "node_modules/glob": {
+ "version": "7.2.3",
+ "license": "ISC",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "6.0.2",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/globals": {
+ "version": "13.20.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/got": {
+ "version": "12.6.0",
+ "license": "MIT",
+ "dependencies": {
+ "@sindresorhus/is": "^5.2.0",
+ "@szmarczak/http-timer": "^5.0.1",
+ "cacheable-lookup": "^7.0.0",
+ "cacheable-request": "^10.2.8",
+ "decompress-response": "^6.0.0",
+ "form-data-encoder": "^2.1.2",
+ "get-stream": "^6.0.1",
+ "http2-wrapper": "^2.1.10",
+ "lowercase-keys": "^3.0.0",
+ "p-cancelable": "^3.0.0",
+ "responselike": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/got?sponsor=1"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "license": "ISC"
+ },
+ "node_modules/graceful-readlink": {
+ "version": "1.0.1",
+ "license": "MIT"
+ },
+ "node_modules/graphemer": {
+ "version": "1.4.0",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/has": {
+ "version": "1.0.3",
+ "license": "MIT",
+ "dependencies": {
+ "function-bind": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/has-flag": {
+ "version": "4.0.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/has-proto": {
+ "version": "1.0.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-symbols": {
+ "version": "1.0.3",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-unicode": {
+ "version": "2.0.1",
+ "license": "ISC"
+ },
+ "node_modules/he": {
+ "version": "1.2.0",
+ "license": "MIT",
+ "bin": {
+ "he": "bin/he"
+ }
+ },
+ "node_modules/himalaya": {
+ "version": "1.1.0",
+ "license": "ISC"
+ },
+ "node_modules/htmlparser2": {
+ "version": "8.0.2",
+ "funding": [
+ "https://github.com/fb55/htmlparser2?sponsor=1",
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fb55"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.3",
+ "domutils": "^3.0.1",
+ "entities": "^4.4.0"
+ }
+ },
+ "node_modules/http-cache-semantics": {
+ "version": "4.1.1",
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/http-errors": {
+ "version": "2.0.0",
+ "license": "MIT",
+ "dependencies": {
+ "depd": "2.0.0",
+ "inherits": "2.0.4",
+ "setprototypeof": "1.2.0",
+ "statuses": "2.0.1",
+ "toidentifier": "1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/http-proxy-agent": {
+ "version": "4.0.1",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@tootallnate/once": "1",
+ "agent-base": "6",
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/http2-wrapper": {
+ "version": "2.2.0",
+ "license": "MIT",
+ "dependencies": {
+ "quick-lru": "^5.1.1",
+ "resolve-alpn": "^1.2.0"
+ },
+ "engines": {
+ "node": ">=10.19.0"
+ }
+ },
+ "node_modules/https": {
+ "version": "1.0.0",
+ "license": "ISC"
+ },
+ "node_modules/https-proxy-agent": {
+ "version": "5.0.1",
+ "license": "MIT",
+ "dependencies": {
+ "agent-base": "6",
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/humanize-ms": {
+ "version": "1.2.1",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "ms": "^2.0.0"
+ }
+ },
+ "node_modules/i18next": {
+ "version": "21.10.0",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://locize.com"
+ },
+ {
+ "type": "individual",
+ "url": "https://locize.com/i18next.html"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.17.2"
+ }
+ },
+ "node_modules/i18next-fs-backend": {
+ "version": "1.2.0",
+ "license": "MIT"
+ },
+ "node_modules/iconv-lite": {
+ "version": "0.4.24",
+ "license": "MIT",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/ieee754": {
+ "version": "1.2.1",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/ignore": {
+ "version": "5.2.4",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/import-fresh": {
+ "version": "3.3.0",
+ "dev": true,
+ "license": "MIT",
+ "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",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.19"
+ }
+ },
+ "node_modules/indent-string": {
+ "version": "4.0.0",
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/infer-owner": {
+ "version": "1.0.4",
+ "license": "ISC",
+ "optional": true
+ },
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "license": "ISC",
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "license": "ISC"
+ },
+ "node_modules/ini": {
+ "version": "1.3.8",
+ "license": "ISC"
+ },
+ "node_modules/ip": {
+ "version": "2.0.0",
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/ipaddr.js": {
+ "version": "1.9.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/is-buffer": {
+ "version": "1.1.6",
+ "license": "MIT"
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-lambda": {
+ "version": "1.0.1",
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/is-path-inside": {
+ "version": "3.0.3",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
+ },
+ "node_modules/isarray": {
+ "version": "0.0.1",
+ "license": "MIT"
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "devOptional": true,
+ "license": "ISC"
+ },
+ "node_modules/jake": {
+ "version": "10.8.7",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "async": "^3.2.3",
+ "chalk": "^4.0.2",
+ "filelist": "^1.0.4",
+ "minimatch": "^3.1.2"
+ },
+ "bin": {
+ "jake": "bin/cli.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/js-yaml": {
+ "version": "4.1.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/json-buffer": {
+ "version": "3.0.1",
+ "license": "MIT"
+ },
+ "node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/kareem": {
+ "version": "2.3.2",
+ "license": "Apache-2.0"
+ },
+ "node_modules/keyv": {
+ "version": "4.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "json-buffer": "3.0.1"
+ }
+ },
+ "node_modules/kruptein": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/kruptein/-/kruptein-2.2.3.tgz",
+ "integrity": "sha512-BTwprBPTzkFT9oTugxKd3WnWrX630MqUDsnmBuoa98eQs12oD4n4TeI0GbpdGcYn/73Xueg2rfnw+oK4dovnJg==",
+ "dependencies": {
+ "asn1.js": "^5.4.1"
+ },
+ "engines": {
+ "node": ">6"
+ }
+ },
+ "node_modules/levn": {
+ "version": "0.4.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/libsodium": {
+ "version": "0.7.11",
+ "license": "ISC"
+ },
+ "node_modules/libsodium-wrappers": {
+ "version": "0.7.11",
+ "license": "ISC",
+ "dependencies": {
+ "libsodium": "^0.7.11"
+ }
+ },
+ "node_modules/locate-path": {
+ "version": "6.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-locate": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/lodash": {
+ "version": "4.17.21",
+ "license": "MIT"
+ },
+ "node_modules/lodash.merge": {
+ "version": "4.6.2",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/lodash.snakecase": {
+ "version": "4.1.1",
+ "license": "MIT"
+ },
+ "node_modules/long": {
+ "version": "5.2.3",
+ "license": "Apache-2.0"
+ },
+ "node_modules/lowercase-keys": {
+ "version": "3.0.0",
+ "license": "MIT",
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/lru-cache": {
+ "version": "6.0.0",
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/luxon": {
+ "version": "3.3.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/make-dir": {
+ "version": "3.1.0",
+ "license": "MIT",
+ "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",
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/make-fetch-happen": {
+ "version": "9.1.0",
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "agentkeepalive": "^4.1.3",
+ "cacache": "^15.2.0",
+ "http-cache-semantics": "^4.1.0",
+ "http-proxy-agent": "^4.0.1",
+ "https-proxy-agent": "^5.0.0",
+ "is-lambda": "^1.0.1",
+ "lru-cache": "^6.0.0",
+ "minipass": "^3.1.3",
+ "minipass-collect": "^1.0.2",
+ "minipass-fetch": "^1.3.2",
+ "minipass-flush": "^1.0.5",
+ "minipass-pipeline": "^1.2.4",
+ "negotiator": "^0.6.2",
+ "promise-retry": "^2.0.1",
+ "socks-proxy-agent": "^6.0.0",
+ "ssri": "^8.0.0"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/make-fetch-happen/node_modules/minipass": {
+ "version": "3.3.6",
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/md5": {
+ "version": "2.3.0",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "charenc": "0.0.2",
+ "crypt": "0.0.2",
+ "is-buffer": "~1.1.6"
+ }
+ },
+ "node_modules/media-typer": {
+ "version": "0.3.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/memory-pager": {
+ "version": "1.5.0",
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/merge-descriptors": {
+ "version": "1.0.1",
+ "license": "MIT"
+ },
+ "node_modules/methods": {
+ "version": "1.1.2",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime": {
+ "version": "1.6.0",
+ "license": "MIT",
+ "bin": {
+ "mime": "cli.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/mime-db": {
+ "version": "1.52.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "2.1.35",
+ "license": "MIT",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mimic-response": {
+ "version": "4.0.0",
+ "license": "MIT",
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/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=="
+ },
+ "node_modules/minimatch": {
+ "version": "3.1.2",
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/minimist": {
+ "version": "1.2.8",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/minipass": {
+ "version": "5.0.0",
+ "license": "ISC",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/minipass-collect": {
+ "version": "1.0.2",
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/minipass-collect/node_modules/minipass": {
+ "version": "3.3.6",
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/minipass-fetch": {
+ "version": "1.4.1",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "minipass": "^3.1.0",
+ "minipass-sized": "^1.0.3",
+ "minizlib": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "optionalDependencies": {
+ "encoding": "^0.1.12"
+ }
+ },
+ "node_modules/minipass-fetch/node_modules/minipass": {
+ "version": "3.3.6",
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/minipass-flush": {
+ "version": "1.0.5",
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/minipass-flush/node_modules/minipass": {
+ "version": "3.3.6",
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/minipass-pipeline": {
+ "version": "1.2.4",
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/minipass-pipeline/node_modules/minipass": {
+ "version": "3.3.6",
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/minipass-sized": {
+ "version": "1.0.3",
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/minipass-sized/node_modules/minipass": {
+ "version": "3.3.6",
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/minizlib": {
+ "version": "2.1.2",
+ "license": "MIT",
+ "dependencies": {
+ "minipass": "^3.0.0",
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/minizlib/node_modules/minipass": {
+ "version": "3.3.6",
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/mkdirp": {
+ "version": "1.0.4",
+ "license": "MIT",
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/mkdirp-classic": {
+ "version": "0.5.3",
+ "license": "MIT"
+ },
+ "node_modules/moment": {
+ "version": "2.29.4",
+ "license": "MIT",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/mongodb": {
+ "version": "3.7.3",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "bl": "^2.2.1",
+ "bson": "^1.1.4",
+ "denque": "^1.4.1",
+ "optional-require": "^1.1.8",
+ "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/mongodb/node_modules/optional-require": {
+ "version": "1.1.8",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "require-at": "^1.0.6"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/mongoose": {
+ "version": "5.13.17",
+ "license": "MIT",
+ "dependencies": {
+ "@types/bson": "1.x || 4.0.x",
+ "@types/mongodb": "^3.5.27",
+ "bson": "^1.1.4",
+ "kareem": "2.3.2",
+ "mongodb": "3.7.3",
+ "mongoose-legacy-pluralize": "1.0.2",
+ "mpath": "0.8.4",
+ "mquery": "3.2.5",
+ "ms": "2.1.2",
+ "optional-require": "1.0.x",
+ "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",
+ "license": "Apache-2.0",
+ "peerDependencies": {
+ "mongoose": "*"
+ }
+ },
+ "node_modules/mongoose/node_modules/ms": {
+ "version": "2.1.2",
+ "license": "MIT"
+ },
+ "node_modules/mpath": {
+ "version": "0.8.4",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/mquery": {
+ "version": "3.2.5",
+ "license": "MIT",
+ "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",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/mquery/node_modules/ms": {
+ "version": "2.0.0",
+ "license": "MIT"
+ },
+ "node_modules/mquery/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "license": "MIT"
+ },
+ "node_modules/ms": {
+ "version": "2.1.3",
+ "license": "MIT"
+ },
+ "node_modules/nan": {
+ "version": "2.17.0",
+ "license": "MIT"
+ },
+ "node_modules/napi-build-utils": {
+ "version": "1.0.2",
+ "license": "MIT"
+ },
+ "node_modules/natural-compare": {
+ "version": "1.4.0",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/negotiator": {
+ "version": "0.6.3",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/node-abi": {
+ "version": "3.45.0",
+ "license": "MIT",
+ "dependencies": {
+ "semver": "^7.3.5"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/node-addon-api": {
+ "version": "5.1.0",
+ "license": "MIT"
+ },
+ "node_modules/node-fetch": {
+ "version": "2.6.11",
+ "license": "MIT",
+ "dependencies": {
+ "whatwg-url": "^5.0.0"
+ },
+ "engines": {
+ "node": "4.x || >=6.0.0"
+ },
+ "peerDependencies": {
+ "encoding": "^0.1.0"
+ },
+ "peerDependenciesMeta": {
+ "encoding": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/node-gyp": {
+ "version": "8.4.1",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "env-paths": "^2.2.0",
+ "glob": "^7.1.4",
+ "graceful-fs": "^4.2.6",
+ "make-fetch-happen": "^9.1.0",
+ "nopt": "^5.0.0",
+ "npmlog": "^6.0.0",
+ "rimraf": "^3.0.2",
+ "semver": "^7.3.5",
+ "tar": "^6.1.2",
+ "which": "^2.0.2"
+ },
+ "bin": {
+ "node-gyp": "bin/node-gyp.js"
+ },
+ "engines": {
+ "node": ">= 10.12.0"
+ }
+ },
+ "node_modules/node-gyp/node_modules/are-we-there-yet": {
+ "version": "3.0.1",
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "delegates": "^1.0.0",
+ "readable-stream": "^3.6.0"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
+ "node_modules/node-gyp/node_modules/gauge": {
+ "version": "4.0.4",
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "aproba": "^1.0.3 || ^2.0.0",
+ "color-support": "^1.1.3",
+ "console-control-strings": "^1.1.0",
+ "has-unicode": "^2.0.1",
+ "signal-exit": "^3.0.7",
+ "string-width": "^4.2.3",
+ "strip-ansi": "^6.0.1",
+ "wide-align": "^1.1.5"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
+ "node_modules/node-gyp/node_modules/npmlog": {
+ "version": "6.0.2",
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "are-we-there-yet": "^3.0.0",
+ "console-control-strings": "^1.1.0",
+ "gauge": "^4.0.3",
+ "set-blocking": "^2.0.0"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
+ "node_modules/node-gyp/node_modules/readable-stream": {
+ "version": "3.6.2",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/node-gyp/node_modules/string_decoder": {
+ "version": "1.3.0",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "safe-buffer": "~5.2.0"
+ }
+ },
+ "node_modules/node-html-parser": {
+ "version": "6.1.5",
+ "license": "MIT",
+ "dependencies": {
+ "css-select": "^5.1.0",
+ "he": "1.2.0"
+ }
+ },
+ "node_modules/nodeactyl": {
+ "version": "3.3.0",
+ "dependencies": {
+ "axios": "^0.22.0"
+ }
+ },
+ "node_modules/nopt": {
+ "version": "5.0.0",
+ "license": "ISC",
+ "dependencies": {
+ "abbrev": "1"
+ },
+ "bin": {
+ "nopt": "bin/nopt.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/normalize-url": {
+ "version": "8.0.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/npmlog": {
+ "version": "5.0.1",
+ "license": "ISC",
+ "dependencies": {
+ "are-we-there-yet": "^2.0.0",
+ "console-control-strings": "^1.1.0",
+ "gauge": "^3.0.0",
+ "set-blocking": "^2.0.0"
+ }
+ },
+ "node_modules/nth-check": {
+ "version": "2.1.1",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "boolbase": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/nth-check?sponsor=1"
+ }
+ },
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-inspect": {
+ "version": "1.12.3",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/on-finished": {
+ "version": "2.4.1",
+ "license": "MIT",
+ "dependencies": {
+ "ee-first": "1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/on-headers": {
+ "version": "1.0.2",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/once": {
+ "version": "1.4.0",
+ "license": "ISC",
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/optional-require": {
+ "version": "1.0.3",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/optionator": {
+ "version": "0.9.1",
+ "dev": true,
+ "license": "MIT",
+ "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/p-cancelable": {
+ "version": "3.0.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.20"
+ }
+ },
+ "node_modules/p-limit": {
+ "version": "3.1.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "yocto-queue": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-locate": {
+ "version": "5.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-limit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-map": {
+ "version": "4.0.0",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "aggregate-error": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/parent-module": {
+ "version": "1.0.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "callsites": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/parse5": {
+ "version": "7.1.2",
+ "license": "MIT",
+ "dependencies": {
+ "entities": "^4.4.0"
+ },
+ "funding": {
+ "url": "https://github.com/inikulin/parse5?sponsor=1"
+ }
+ },
+ "node_modules/parse5-htmlparser2-tree-adapter": {
+ "version": "7.0.0",
+ "license": "MIT",
+ "dependencies": {
+ "domhandler": "^5.0.2",
+ "parse5": "^7.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/inikulin/parse5?sponsor=1"
+ }
+ },
+ "node_modules/parseurl": {
+ "version": "1.3.3",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/path-exists": {
+ "version": "4.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-is-absolute": {
+ "version": "1.0.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/path-key": {
+ "version": "3.1.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-to-regexp": {
+ "version": "0.1.7",
+ "license": "MIT"
+ },
+ "node_modules/peek-readable": {
+ "version": "4.1.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/Borewit"
+ }
+ },
+ "node_modules/pify": {
+ "version": "5.0.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/play-audio": {
+ "version": "0.5.2",
+ "license": "GPL-3.0"
+ },
+ "node_modules/play-dl": {
+ "version": "1.9.6",
+ "license": "GPL-3.0",
+ "dependencies": {
+ "play-audio": "^0.5.2"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
+ "node_modules/prebuild-install": {
+ "version": "7.1.1",
+ "license": "MIT",
+ "dependencies": {
+ "detect-libc": "^2.0.0",
+ "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": "^3.3.0",
+ "pump": "^3.0.0",
+ "rc": "^1.2.7",
+ "simple-get": "^4.0.0",
+ "tar-fs": "^2.0.0",
+ "tunnel-agent": "^0.6.0"
+ },
+ "bin": {
+ "prebuild-install": "bin.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/prebuild-install/node_modules/simple-get": {
+ "version": "4.0.1",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "decompress-response": "^6.0.0",
+ "once": "^1.3.1",
+ "simple-concat": "^1.0.0"
+ }
+ },
+ "node_modules/prelude-ls": {
+ "version": "1.2.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/prism-media": {
+ "version": "1.3.5",
+ "license": "Apache-2.0",
+ "peerDependencies": {
+ "@discordjs/opus": ">=0.8.0 <1.0.0",
+ "ffmpeg-static": "^5.0.2 || ^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",
+ "license": "MIT"
+ },
+ "node_modules/promise-inflight": {
+ "version": "1.0.1",
+ "license": "ISC",
+ "optional": true
+ },
+ "node_modules/promise-retry": {
+ "version": "2.0.1",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "err-code": "^2.0.2",
+ "retry": "^0.12.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/proxy-addr": {
+ "version": "2.0.7",
+ "license": "MIT",
+ "dependencies": {
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/pump": {
+ "version": "3.0.0",
+ "license": "MIT",
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "node_modules/punycode": {
+ "version": "2.3.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/qs": {
+ "version": "6.11.0",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "side-channel": "^1.0.4"
+ },
+ "engines": {
+ "node": ">=0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/queue-microtask": {
+ "version": "1.2.3",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/quick-lru": {
+ "version": "5.1.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/quick.db": {
+ "version": "7.1.3",
+ "license": "MIT",
+ "dependencies": {
+ "better-sqlite3": "^7.1.1",
+ "lodash": "^4.17.20"
+ }
+ },
+ "node_modules/random-bytes": {
+ "version": "1.0.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/randombytes": {
+ "version": "2.1.0",
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "node_modules/range-parser": {
+ "version": "1.2.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/raw-body": {
+ "version": "2.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "bytes": "3.1.2",
+ "http-errors": "2.0.0",
+ "iconv-lite": "0.4.24",
+ "unpipe": "1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/rc": {
+ "version": "1.2.8",
+ "license": "(BSD-2-Clause OR MIT OR Apache-2.0)",
+ "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",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/readable-stream": {
+ "version": "1.0.34",
+ "license": "MIT",
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "node_modules/readable-web-to-node-stream": {
+ "version": "3.0.2",
+ "license": "MIT",
+ "dependencies": {
+ "readable-stream": "^3.6.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/Borewit"
+ }
+ },
+ "node_modules/readable-web-to-node-stream/node_modules/readable-stream": {
+ "version": "3.6.2",
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/readable-web-to-node-stream/node_modules/string_decoder": {
+ "version": "1.3.0",
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "~5.2.0"
+ }
+ },
+ "node_modules/readline-sync": {
+ "version": "1.4.10",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/regenerator-runtime": {
+ "version": "0.13.11",
+ "license": "MIT"
+ },
+ "node_modules/regexp-clone": {
+ "version": "1.0.0",
+ "license": "MIT"
+ },
+ "node_modules/require-at": {
+ "version": "1.0.6",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/resolve-alpn": {
+ "version": "1.2.1",
+ "license": "MIT"
+ },
+ "node_modules/resolve-from": {
+ "version": "4.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/responselike": {
+ "version": "3.0.0",
+ "license": "MIT",
+ "dependencies": {
+ "lowercase-keys": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/retry": {
+ "version": "0.12.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/reusify": {
+ "version": "1.0.4",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/reverbnation-scraper": {
+ "version": "2.0.0",
+ "license": "MIT",
+ "dependencies": {
+ "node-fetch": "^2.6.0"
+ }
+ },
+ "node_modules/rimraf": {
+ "version": "3.0.2",
+ "license": "ISC",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/run-parallel": {
+ "version": "1.2.0",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/safer-buffer": {
+ "version": "2.1.2",
+ "license": "MIT"
+ },
+ "node_modules/saslprep": {
+ "version": "1.0.3",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "sparse-bitfield": "^3.0.3"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/sax": {
+ "version": "1.2.4",
+ "license": "ISC"
+ },
+ "node_modules/semver": {
+ "version": "7.5.1",
+ "license": "ISC",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/send": {
+ "version": "0.18.0",
+ "license": "MIT",
+ "dependencies": {
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "fresh": "0.5.2",
+ "http-errors": "2.0.0",
+ "mime": "1.6.0",
+ "ms": "2.1.3",
+ "on-finished": "2.4.1",
+ "range-parser": "~1.2.1",
+ "statuses": "2.0.1"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/send/node_modules/debug": {
+ "version": "2.6.9",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/send/node_modules/debug/node_modules/ms": {
+ "version": "2.0.0",
+ "license": "MIT"
+ },
+ "node_modules/serialize-javascript": {
+ "version": "6.0.1",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "randombytes": "^2.1.0"
+ }
+ },
+ "node_modules/serve-static": {
+ "version": "1.15.0",
+ "license": "MIT",
+ "dependencies": {
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.3",
+ "send": "0.18.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/session-file-store": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/session-file-store/-/session-file-store-1.5.0.tgz",
+ "integrity": "sha512-60IZaJNzyu2tIeHutkYE8RiXVx3KRvacOxfLr2Mj92SIsRIroDsH0IlUUR6fJAjoTW4RQISbaOApa2IZpIwFdQ==",
+ "dependencies": {
+ "bagpipe": "^0.3.5",
+ "fs-extra": "^8.0.1",
+ "kruptein": "^2.0.4",
+ "object-assign": "^4.1.1",
+ "retry": "^0.12.0",
+ "write-file-atomic": "3.0.3"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/set-blocking": {
+ "version": "2.0.0",
+ "license": "ISC"
+ },
+ "node_modules/setprototypeof": {
+ "version": "1.2.0",
+ "license": "ISC"
+ },
+ "node_modules/shebang-command": {
+ "version": "2.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/side-channel": {
+ "version": "1.0.4",
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.0",
+ "get-intrinsic": "^1.0.2",
+ "object-inspect": "^1.9.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/sift": {
+ "version": "13.5.2",
+ "license": "MIT"
+ },
+ "node_modules/signal-exit": {
+ "version": "3.0.7",
+ "license": "ISC"
+ },
+ "node_modules/simple-concat": {
+ "version": "1.0.1",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/simple-get": {
+ "version": "3.1.1",
+ "license": "MIT",
+ "dependencies": {
+ "decompress-response": "^4.2.0",
+ "once": "^1.3.1",
+ "simple-concat": "^1.0.0"
+ }
+ },
+ "node_modules/simple-get/node_modules/decompress-response": {
+ "version": "4.2.1",
+ "license": "MIT",
+ "dependencies": {
+ "mimic-response": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/simple-get/node_modules/mimic-response": {
+ "version": "2.1.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/sliced": {
+ "version": "1.0.1",
+ "license": "MIT"
+ },
+ "node_modules/smart-buffer": {
+ "version": "4.2.0",
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">= 6.0.0",
+ "npm": ">= 3.0.0"
+ }
+ },
+ "node_modules/socket.io": {
+ "version": "4.6.2",
+ "license": "MIT",
+ "dependencies": {
+ "accepts": "~1.3.4",
+ "base64id": "~2.0.0",
+ "debug": "~4.3.2",
+ "engine.io": "~6.4.2",
+ "socket.io-adapter": "~2.5.2",
+ "socket.io-parser": "~4.2.4"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/socket.io-adapter": {
+ "version": "2.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "ws": "~8.11.0"
+ }
+ },
+ "node_modules/socket.io-adapter/node_modules/ws": {
+ "version": "8.11.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": "^5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/socket.io-parser": {
+ "version": "4.2.4",
+ "license": "MIT",
+ "dependencies": {
+ "@socket.io/component-emitter": "~3.1.0",
+ "debug": "~4.3.1"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/socks": {
+ "version": "2.7.1",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "ip": "^2.0.0",
+ "smart-buffer": "^4.2.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0",
+ "npm": ">= 3.0.0"
+ }
+ },
+ "node_modules/socks-proxy-agent": {
+ "version": "6.2.1",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "agent-base": "^6.0.2",
+ "debug": "^4.3.3",
+ "socks": "^2.6.2"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/soundcloud.ts": {
+ "version": "0.5.0",
+ "license": "MIT",
+ "dependencies": {
+ "undici": "^5.21.2"
+ }
+ },
+ "node_modules/sparse-bitfield": {
+ "version": "3.0.3",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "memory-pager": "^1.0.2"
+ }
+ },
+ "node_modules/spotify-uri": {
+ "version": "3.0.4",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 16"
+ }
+ },
+ "node_modules/spotify-url-info": {
+ "version": "3.2.5",
+ "license": "MIT",
+ "dependencies": {
+ "himalaya": "~1.1.0",
+ "spotify-uri": "~3.0.3"
+ },
+ "engines": {
+ "node": ">= 12"
+ }
+ },
+ "node_modules/sqlite3": {
+ "version": "5.1.6",
+ "hasInstallScript": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@mapbox/node-pre-gyp": "^1.0.0",
+ "node-addon-api": "^4.2.0",
+ "tar": "^6.1.11"
+ },
+ "optionalDependencies": {
+ "node-gyp": "8.x"
+ },
+ "peerDependencies": {
+ "node-gyp": "8.x"
+ },
+ "peerDependenciesMeta": {
+ "node-gyp": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/sqlite3/node_modules/node-addon-api": {
+ "version": "4.3.0",
+ "license": "MIT"
+ },
+ "node_modules/ssri": {
+ "version": "8.0.1",
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "minipass": "^3.1.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/ssri/node_modules/minipass": {
+ "version": "3.3.6",
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/statuses": {
+ "version": "2.0.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/streamsearch": {
+ "version": "1.1.0",
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/string_decoder": {
+ "version": "0.10.31",
+ "license": "MIT"
+ },
+ "node_modules/string-to-stream": {
+ "version": "1.1.1",
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.1.0"
+ }
+ },
+ "node_modules/string-to-stream/node_modules/isarray": {
+ "version": "1.0.0",
+ "license": "MIT"
+ },
+ "node_modules/string-to-stream/node_modules/readable-stream": {
+ "version": "2.3.8",
+ "license": "MIT",
+ "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/string-to-stream/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "license": "MIT"
+ },
+ "node_modules/string-to-stream/node_modules/string_decoder": {
+ "version": "1.1.1",
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "node_modules/string-width": {
+ "version": "4.2.3",
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-json-comments": {
+ "version": "3.1.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/strtok3": {
+ "version": "6.3.0",
+ "license": "MIT",
+ "dependencies": {
+ "@tokenizer/token": "^0.3.0",
+ "peek-readable": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/Borewit"
+ }
+ },
+ "node_modules/supports-color": {
+ "version": "7.2.0",
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/tar": {
+ "version": "6.1.15",
+ "license": "ISC",
+ "dependencies": {
+ "chownr": "^2.0.0",
+ "fs-minipass": "^2.0.0",
+ "minipass": "^5.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",
+ "license": "MIT",
+ "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",
+ "license": "ISC"
+ },
+ "node_modules/tar-stream": {
+ "version": "2.2.0",
+ "license": "MIT",
+ "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",
+ "license": "MIT",
+ "dependencies": {
+ "buffer": "^5.5.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
+ }
+ },
+ "node_modules/tar-stream/node_modules/readable-stream": {
+ "version": "3.6.2",
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/tar-stream/node_modules/string_decoder": {
+ "version": "1.3.0",
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "~5.2.0"
+ }
+ },
+ "node_modules/text-table": {
+ "version": "0.2.0",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/toidentifier": {
+ "version": "1.0.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
+ "node_modules/token-types": {
+ "version": "4.2.1",
+ "license": "MIT",
+ "dependencies": {
+ "@tokenizer/token": "^0.3.0",
+ "ieee754": "^1.2.1"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/Borewit"
+ }
+ },
+ "node_modules/tr46": {
+ "version": "0.0.3",
+ "license": "MIT"
+ },
+ "node_modules/ts-mixer": {
+ "version": "6.0.3",
+ "license": "MIT"
+ },
+ "node_modules/tslib": {
+ "version": "2.5.2",
+ "license": "0BSD"
+ },
+ "node_modules/tunnel-agent": {
+ "version": "0.6.0",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "safe-buffer": "^5.0.1"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/type-check": {
+ "version": "0.4.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "prelude-ls": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/type-fest": {
+ "version": "0.20.2",
+ "dev": true,
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/type-is": {
+ "version": "1.6.18",
+ "license": "MIT",
+ "dependencies": {
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.24"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/typedarray-to-buffer": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
+ "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
+ "dependencies": {
+ "is-typedarray": "^1.0.0"
+ }
+ },
+ "node_modules/uid-safe": {
+ "version": "2.1.5",
+ "license": "MIT",
+ "dependencies": {
+ "random-bytes": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/undici": {
+ "version": "5.22.1",
+ "license": "MIT",
+ "dependencies": {
+ "busboy": "^1.6.0"
+ },
+ "engines": {
+ "node": ">=14.0"
+ }
+ },
+ "node_modules/unique-filename": {
+ "version": "1.1.1",
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "unique-slug": "^2.0.0"
+ }
+ },
+ "node_modules/unique-slug": {
+ "version": "2.0.2",
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "imurmurhash": "^0.1.4"
+ }
+ },
+ "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",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/uri-js": {
+ "version": "4.4.1",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "license": "MIT"
+ },
+ "node_modules/utils-merge": {
+ "version": "1.0.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/uuid": {
+ "version": "8.3.2",
+ "license": "MIT",
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "node_modules/varint": {
+ "version": "6.0.0",
+ "license": "MIT"
+ },
+ "node_modules/vary": {
+ "version": "1.1.2",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/webidl-conversions": {
+ "version": "3.0.1",
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/whatwg-url": {
+ "version": "5.0.0",
+ "license": "MIT",
+ "dependencies": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ }
+ },
+ "node_modules/which": {
+ "version": "2.0.2",
+ "devOptional": true,
+ "license": "ISC",
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/wide-align": {
+ "version": "1.1.5",
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^1.0.2 || 2 || 3 || 4"
+ }
+ },
+ "node_modules/word-wrap": {
+ "version": "1.2.3",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "license": "ISC"
+ },
+ "node_modules/write-file-atomic": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
+ "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
+ "dependencies": {
+ "imurmurhash": "^0.1.4",
+ "is-typedarray": "^1.0.0",
+ "signal-exit": "^3.0.2",
+ "typedarray-to-buffer": "^3.1.5"
+ }
+ },
+ "node_modules/ws": {
+ "version": "8.13.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": ">=5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/xmlbuilder": {
+ "version": "8.2.2",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/xmlrpc": {
+ "version": "1.3.2",
+ "license": "MIT",
+ "dependencies": {
+ "sax": "1.2.x",
+ "xmlbuilder": "8.2.x"
+ },
+ "engines": {
+ "node": ">=0.8",
+ "npm": ">=1.0.0"
+ }
+ },
+ "node_modules/yallist": {
+ "version": "4.0.0",
+ "license": "ISC"
+ },
+ "node_modules/yocto-queue": {
+ "version": "0.1.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/youtube-sr": {
+ "version": "4.3.4",
+ "license": "Apache-2.0"
+ }
+ }
+}
diff --git a/package.json b/package.json
index e0a65cfe..b5382057 100644
--- a/package.json
+++ b/package.json
@@ -23,6 +23,7 @@
"discord-giveaways": "^6.0.1",
"discord-player": "^6.5.0",
"discord.js": "^14.11.0",
+ "express-session": "^1.17.3",
"gamedig": "^4.0.2",
"i18next": "^21.9.1",
"i18next-fs-backend": "^1.1.5",
@@ -30,7 +31,8 @@
"moment": "^2.26.0",
"mongoose": "^5.13.15",
"ms": "^2.1.3",
- "play-dl": "^1.9.6"
+ "play-dl": "^1.9.6",
+ "session-file-store": "^1.5.0"
},
"devDependencies": {
"eslint": "^8.23.0"
diff --git a/scripts/verify-config.js b/scripts/verify-config.js
index bbb69c93..f3bc611e 100644
--- a/scripts/verify-config.js
+++ b/scripts/verify-config.js
@@ -88,7 +88,7 @@ const checks = [
if (!config.dashboard.enabled) {
ignore("Dashboard is not enabled, skipping check.");
} else {
- const checkPortTaken = (port) => {
+ const checkPortTaken = port => {
return new Promise(resolve => {
const net = require("net");
const tester = net.createServer()