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()